1 // automatically generated by the FlatBuffers compiler, do not modify 2 3 4 #ifndef FLATBUFFERS_GENERATED_MONSTERTEST_MYGAME_EXAMPLE_H_ 5 #define FLATBUFFERS_GENERATED_MONSTERTEST_MYGAME_EXAMPLE_H_ 6 7 #include "flatbuffers/flatbuffers.h" 8 9 namespace MyGame { 10 namespace Example2 { 11 12 struct Monster; 13 struct MonsterT; 14 15 } // namespace Example2 16 17 namespace Example { 18 19 struct Test; 20 21 struct TestSimpleTableWithEnum; 22 struct TestSimpleTableWithEnumT; 23 24 struct Vec3; 25 26 struct Stat; 27 struct StatT; 28 29 struct Monster; 30 struct MonsterT; 31 32 enum Color { 33 Color_Red = 1, 34 Color_Green = 2, 35 Color_Blue = 8, 36 Color_NONE = 0, 37 Color_ANY = 11 38 }; 39 40 inline const char **EnumNamesColor() { 41 static const char *names[] = { 42 "Red", 43 "Green", 44 "", 45 "", 46 "", 47 "", 48 "", 49 "Blue", 50 nullptr 51 }; 52 return names; 53 } 54 55 inline const char *EnumNameColor(Color e) { 56 const size_t index = static_cast<int>(e) - static_cast<int>(Color_Red); 57 return EnumNamesColor()[index]; 58 } 59 60 enum Any { 61 Any_NONE = 0, 62 Any_Monster = 1, 63 Any_TestSimpleTableWithEnum = 2, 64 Any_MyGame_Example2_Monster = 3, 65 Any_MIN = Any_NONE, 66 Any_MAX = Any_MyGame_Example2_Monster 67 }; 68 69 inline const char **EnumNamesAny() { 70 static const char *names[] = { 71 "NONE", 72 "Monster", 73 "TestSimpleTableWithEnum", 74 "MyGame_Example2_Monster", 75 nullptr 76 }; 77 return names; 78 } 79 80 inline const char *EnumNameAny(Any e) { 81 const size_t index = static_cast<int>(e); 82 return EnumNamesAny()[index]; 83 } 84 85 template<typename T> struct AnyTraits { 86 static const Any enum_value = Any_NONE; 87 }; 88 89 template<> struct AnyTraits<Monster> { 90 static const Any enum_value = Any_Monster; 91 }; 92 93 template<> struct AnyTraits<TestSimpleTableWithEnum> { 94 static const Any enum_value = Any_TestSimpleTableWithEnum; 95 }; 96 97 template<> struct AnyTraits<MyGame::Example2::Monster> { 98 static const Any enum_value = Any_MyGame_Example2_Monster; 99 }; 100 101 struct AnyUnion { 102 Any type; 103 flatbuffers::NativeTable *table; 104 105 AnyUnion() : type(Any_NONE), table(nullptr) {} 106 AnyUnion(AnyUnion&& u): 107 type(std::move(u.type)), table(std::move(u.table)) {} 108 AnyUnion(const AnyUnion &); 109 AnyUnion &operator=(const AnyUnion &); 110 ~AnyUnion() { Reset(); } 111 112 void Reset(); 113 114 template <typename T> 115 void Set(T&& value) { 116 Reset(); 117 type = AnyTraits<typename T::TableType>::enum_value; 118 if (type != Any_NONE) { 119 table = new T(std::forward<T>(value)); 120 } 121 } 122 123 static flatbuffers::NativeTable *UnPack(const void *obj, Any type, const flatbuffers::resolver_function_t *resolver); 124 flatbuffers::Offset<void> Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; 125 126 MonsterT *AsMonster() { 127 return type == Any_Monster ? 128 reinterpret_cast<MonsterT *>(table) : nullptr; 129 } 130 TestSimpleTableWithEnumT *AsTestSimpleTableWithEnum() { 131 return type == Any_TestSimpleTableWithEnum ? 132 reinterpret_cast<TestSimpleTableWithEnumT *>(table) : nullptr; 133 } 134 MyGame::Example2::MonsterT *AsMyGame_Example2_Monster() { 135 return type == Any_MyGame_Example2_Monster ? 136 reinterpret_cast<MyGame::Example2::MonsterT *>(table) : nullptr; 137 } 138 }; 139 140 bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type); 141 bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types); 142 143 MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { 144 private: 145 int16_t a_; 146 int8_t b_; 147 int8_t padding0__; 148 149 public: 150 Test() { 151 memset(this, 0, sizeof(Test)); 152 } 153 Test(const Test &_o) { 154 memcpy(this, &_o, sizeof(Test)); 155 } 156 Test(int16_t _a, int8_t _b) 157 : a_(flatbuffers::EndianScalar(_a)), 158 b_(flatbuffers::EndianScalar(_b)), 159 padding0__(0) { 160 (void)padding0__; 161 } 162 int16_t a() const { 163 return flatbuffers::EndianScalar(a_); 164 } 165 void mutate_a(int16_t _a) { 166 flatbuffers::WriteScalar(&a_, _a); 167 } 168 int8_t b() const { 169 return flatbuffers::EndianScalar(b_); 170 } 171 void mutate_b(int8_t _b) { 172 flatbuffers::WriteScalar(&b_, _b); 173 } 174 }; 175 STRUCT_END(Test, 4); 176 177 MANUALLY_ALIGNED_STRUCT(16) Vec3 FLATBUFFERS_FINAL_CLASS { 178 private: 179 float x_; 180 float y_; 181 float z_; 182 int32_t padding0__; 183 double test1_; 184 int8_t test2_; 185 int8_t padding1__; 186 Test test3_; 187 int16_t padding2__; 188 189 public: 190 Vec3() { 191 memset(this, 0, sizeof(Vec3)); 192 } 193 Vec3(const Vec3 &_o) { 194 memcpy(this, &_o, sizeof(Vec3)); 195 } 196 Vec3(float _x, float _y, float _z, double _test1, Color _test2, const Test &_test3) 197 : x_(flatbuffers::EndianScalar(_x)), 198 y_(flatbuffers::EndianScalar(_y)), 199 z_(flatbuffers::EndianScalar(_z)), 200 padding0__(0), 201 test1_(flatbuffers::EndianScalar(_test1)), 202 test2_(flatbuffers::EndianScalar(static_cast<int8_t>(_test2))), 203 padding1__(0), 204 test3_(_test3), 205 padding2__(0) { 206 (void)padding0__; 207 (void)padding1__; 208 (void)padding2__; 209 } 210 float x() const { 211 return flatbuffers::EndianScalar(x_); 212 } 213 void mutate_x(float _x) { 214 flatbuffers::WriteScalar(&x_, _x); 215 } 216 float y() const { 217 return flatbuffers::EndianScalar(y_); 218 } 219 void mutate_y(float _y) { 220 flatbuffers::WriteScalar(&y_, _y); 221 } 222 float z() const { 223 return flatbuffers::EndianScalar(z_); 224 } 225 void mutate_z(float _z) { 226 flatbuffers::WriteScalar(&z_, _z); 227 } 228 double test1() const { 229 return flatbuffers::EndianScalar(test1_); 230 } 231 void mutate_test1(double _test1) { 232 flatbuffers::WriteScalar(&test1_, _test1); 233 } 234 Color test2() const { 235 return static_cast<Color>(flatbuffers::EndianScalar(test2_)); 236 } 237 void mutate_test2(Color _test2) { 238 flatbuffers::WriteScalar(&test2_, static_cast<int8_t>(_test2)); 239 } 240 const Test &test3() const { 241 return test3_; 242 } 243 const Test &mutable_test3() { 244 return test3_; 245 } 246 }; 247 STRUCT_END(Vec3, 32); 248 249 } // namespace Example 250 251 namespace Example2 { 252 253 struct MonsterT : public flatbuffers::NativeTable { 254 typedef Monster TableType; 255 MonsterT() { 256 } 257 }; 258 259 struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 260 typedef MonsterT NativeTableType; 261 bool Verify(flatbuffers::Verifier &verifier) const { 262 return VerifyTableStart(verifier) && 263 verifier.EndTable(); 264 } 265 MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 266 void UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 267 static flatbuffers::Offset<Monster> Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 268 }; 269 270 struct MonsterBuilder { 271 flatbuffers::FlatBufferBuilder &fbb_; 272 flatbuffers::uoffset_t start_; 273 MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) 274 : fbb_(_fbb) { 275 start_ = fbb_.StartTable(); 276 } 277 MonsterBuilder &operator=(const MonsterBuilder &); 278 flatbuffers::Offset<Monster> Finish() { 279 const auto end = fbb_.EndTable(start_, 0); 280 auto o = flatbuffers::Offset<Monster>(end); 281 return o; 282 } 283 }; 284 285 inline flatbuffers::Offset<Monster> CreateMonster( 286 flatbuffers::FlatBufferBuilder &_fbb) { 287 MonsterBuilder builder_(_fbb); 288 return builder_.Finish(); 289 } 290 291 flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 292 293 } // namespace Example2 294 295 namespace Example { 296 297 struct TestSimpleTableWithEnumT : public flatbuffers::NativeTable { 298 typedef TestSimpleTableWithEnum TableType; 299 Color color; 300 TestSimpleTableWithEnumT() 301 : color(Color_Green) { 302 } 303 }; 304 305 struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 306 typedef TestSimpleTableWithEnumT NativeTableType; 307 enum { 308 VT_COLOR = 4 309 }; 310 Color color() const { 311 return static_cast<Color>(GetField<int8_t>(VT_COLOR, 2)); 312 } 313 bool mutate_color(Color _color) { 314 return SetField(VT_COLOR, static_cast<int8_t>(_color)); 315 } 316 bool Verify(flatbuffers::Verifier &verifier) const { 317 return VerifyTableStart(verifier) && 318 VerifyField<int8_t>(verifier, VT_COLOR) && 319 verifier.EndTable(); 320 } 321 TestSimpleTableWithEnumT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 322 void UnPackTo(TestSimpleTableWithEnumT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 323 static flatbuffers::Offset<TestSimpleTableWithEnum> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 324 }; 325 326 struct TestSimpleTableWithEnumBuilder { 327 flatbuffers::FlatBufferBuilder &fbb_; 328 flatbuffers::uoffset_t start_; 329 void add_color(Color color) { 330 fbb_.AddElement<int8_t>(TestSimpleTableWithEnum::VT_COLOR, static_cast<int8_t>(color), 2); 331 } 332 TestSimpleTableWithEnumBuilder(flatbuffers::FlatBufferBuilder &_fbb) 333 : fbb_(_fbb) { 334 start_ = fbb_.StartTable(); 335 } 336 TestSimpleTableWithEnumBuilder &operator=(const TestSimpleTableWithEnumBuilder &); 337 flatbuffers::Offset<TestSimpleTableWithEnum> Finish() { 338 const auto end = fbb_.EndTable(start_, 1); 339 auto o = flatbuffers::Offset<TestSimpleTableWithEnum>(end); 340 return o; 341 } 342 }; 343 344 inline flatbuffers::Offset<TestSimpleTableWithEnum> CreateTestSimpleTableWithEnum( 345 flatbuffers::FlatBufferBuilder &_fbb, 346 Color color = Color_Green) { 347 TestSimpleTableWithEnumBuilder builder_(_fbb); 348 builder_.add_color(color); 349 return builder_.Finish(); 350 } 351 352 flatbuffers::Offset<TestSimpleTableWithEnum> CreateTestSimpleTableWithEnum(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 353 354 struct StatT : public flatbuffers::NativeTable { 355 typedef Stat TableType; 356 std::string id; 357 int64_t val; 358 uint16_t count; 359 StatT() 360 : val(0), 361 count(0) { 362 } 363 }; 364 365 struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 366 typedef StatT NativeTableType; 367 enum { 368 VT_ID = 4, 369 VT_VAL = 6, 370 VT_COUNT = 8 371 }; 372 const flatbuffers::String *id() const { 373 return GetPointer<const flatbuffers::String *>(VT_ID); 374 } 375 flatbuffers::String *mutable_id() { 376 return GetPointer<flatbuffers::String *>(VT_ID); 377 } 378 int64_t val() const { 379 return GetField<int64_t>(VT_VAL, 0); 380 } 381 bool mutate_val(int64_t _val) { 382 return SetField(VT_VAL, _val); 383 } 384 uint16_t count() const { 385 return GetField<uint16_t>(VT_COUNT, 0); 386 } 387 bool mutate_count(uint16_t _count) { 388 return SetField(VT_COUNT, _count); 389 } 390 bool Verify(flatbuffers::Verifier &verifier) const { 391 return VerifyTableStart(verifier) && 392 VerifyField<flatbuffers::uoffset_t>(verifier, VT_ID) && 393 verifier.Verify(id()) && 394 VerifyField<int64_t>(verifier, VT_VAL) && 395 VerifyField<uint16_t>(verifier, VT_COUNT) && 396 verifier.EndTable(); 397 } 398 StatT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 399 void UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 400 static flatbuffers::Offset<Stat> Pack(flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 401 }; 402 403 struct StatBuilder { 404 flatbuffers::FlatBufferBuilder &fbb_; 405 flatbuffers::uoffset_t start_; 406 void add_id(flatbuffers::Offset<flatbuffers::String> id) { 407 fbb_.AddOffset(Stat::VT_ID, id); 408 } 409 void add_val(int64_t val) { 410 fbb_.AddElement<int64_t>(Stat::VT_VAL, val, 0); 411 } 412 void add_count(uint16_t count) { 413 fbb_.AddElement<uint16_t>(Stat::VT_COUNT, count, 0); 414 } 415 StatBuilder(flatbuffers::FlatBufferBuilder &_fbb) 416 : fbb_(_fbb) { 417 start_ = fbb_.StartTable(); 418 } 419 StatBuilder &operator=(const StatBuilder &); 420 flatbuffers::Offset<Stat> Finish() { 421 const auto end = fbb_.EndTable(start_, 3); 422 auto o = flatbuffers::Offset<Stat>(end); 423 return o; 424 } 425 }; 426 427 inline flatbuffers::Offset<Stat> CreateStat( 428 flatbuffers::FlatBufferBuilder &_fbb, 429 flatbuffers::Offset<flatbuffers::String> id = 0, 430 int64_t val = 0, 431 uint16_t count = 0) { 432 StatBuilder builder_(_fbb); 433 builder_.add_val(val); 434 builder_.add_id(id); 435 builder_.add_count(count); 436 return builder_.Finish(); 437 } 438 439 inline flatbuffers::Offset<Stat> CreateStatDirect( 440 flatbuffers::FlatBufferBuilder &_fbb, 441 const char *id = nullptr, 442 int64_t val = 0, 443 uint16_t count = 0) { 444 return MyGame::Example::CreateStat( 445 _fbb, 446 id ? _fbb.CreateString(id) : 0, 447 val, 448 count); 449 } 450 451 flatbuffers::Offset<Stat> CreateStat(flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 452 453 struct MonsterT : public flatbuffers::NativeTable { 454 typedef Monster TableType; 455 std::unique_ptr<Vec3> pos; 456 int16_t mana; 457 int16_t hp; 458 std::string name; 459 std::vector<uint8_t> inventory; 460 Color color; 461 AnyUnion test; 462 std::vector<Test> test4; 463 std::vector<std::string> testarrayofstring; 464 std::vector<std::unique_ptr<MonsterT>> testarrayoftables; 465 std::unique_ptr<MonsterT> enemy; 466 std::vector<uint8_t> testnestedflatbuffer; 467 std::unique_ptr<StatT> testempty; 468 bool testbool; 469 int32_t testhashs32_fnv1; 470 uint32_t testhashu32_fnv1; 471 int64_t testhashs64_fnv1; 472 uint64_t testhashu64_fnv1; 473 int32_t testhashs32_fnv1a; 474 Stat *testhashu32_fnv1a; 475 int64_t testhashs64_fnv1a; 476 uint64_t testhashu64_fnv1a; 477 std::vector<bool> testarrayofbools; 478 float testf; 479 float testf2; 480 float testf3; 481 std::vector<std::string> testarrayofstring2; 482 MonsterT() 483 : mana(150), 484 hp(100), 485 color(Color_Blue), 486 testbool(false), 487 testhashs32_fnv1(0), 488 testhashu32_fnv1(0), 489 testhashs64_fnv1(0), 490 testhashu64_fnv1(0), 491 testhashs32_fnv1a(0), 492 testhashu32_fnv1a(0), 493 testhashs64_fnv1a(0), 494 testhashu64_fnv1a(0), 495 testf(3.14159f), 496 testf2(3.0f), 497 testf3(0.0f) { 498 } 499 }; 500 501 /// an example documentation comment: monster object 502 struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 503 typedef MonsterT NativeTableType; 504 enum { 505 VT_POS = 4, 506 VT_MANA = 6, 507 VT_HP = 8, 508 VT_NAME = 10, 509 VT_INVENTORY = 14, 510 VT_COLOR = 16, 511 VT_TEST_TYPE = 18, 512 VT_TEST = 20, 513 VT_TEST4 = 22, 514 VT_TESTARRAYOFSTRING = 24, 515 VT_TESTARRAYOFTABLES = 26, 516 VT_ENEMY = 28, 517 VT_TESTNESTEDFLATBUFFER = 30, 518 VT_TESTEMPTY = 32, 519 VT_TESTBOOL = 34, 520 VT_TESTHASHS32_FNV1 = 36, 521 VT_TESTHASHU32_FNV1 = 38, 522 VT_TESTHASHS64_FNV1 = 40, 523 VT_TESTHASHU64_FNV1 = 42, 524 VT_TESTHASHS32_FNV1A = 44, 525 VT_TESTHASHU32_FNV1A = 46, 526 VT_TESTHASHS64_FNV1A = 48, 527 VT_TESTHASHU64_FNV1A = 50, 528 VT_TESTARRAYOFBOOLS = 52, 529 VT_TESTF = 54, 530 VT_TESTF2 = 56, 531 VT_TESTF3 = 58, 532 VT_TESTARRAYOFSTRING2 = 60 533 }; 534 const Vec3 *pos() const { 535 return GetStruct<const Vec3 *>(VT_POS); 536 } 537 Vec3 *mutable_pos() { 538 return GetStruct<Vec3 *>(VT_POS); 539 } 540 int16_t mana() const { 541 return GetField<int16_t>(VT_MANA, 150); 542 } 543 bool mutate_mana(int16_t _mana) { 544 return SetField(VT_MANA, _mana); 545 } 546 int16_t hp() const { 547 return GetField<int16_t>(VT_HP, 100); 548 } 549 bool mutate_hp(int16_t _hp) { 550 return SetField(VT_HP, _hp); 551 } 552 const flatbuffers::String *name() const { 553 return GetPointer<const flatbuffers::String *>(VT_NAME); 554 } 555 flatbuffers::String *mutable_name() { 556 return GetPointer<flatbuffers::String *>(VT_NAME); 557 } 558 bool KeyCompareLessThan(const Monster *o) const { 559 return *name() < *o->name(); 560 } 561 int KeyCompareWithValue(const char *val) const { 562 return strcmp(name()->c_str(), val); 563 } 564 const flatbuffers::Vector<uint8_t> *inventory() const { 565 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_INVENTORY); 566 } 567 flatbuffers::Vector<uint8_t> *mutable_inventory() { 568 return GetPointer<flatbuffers::Vector<uint8_t> *>(VT_INVENTORY); 569 } 570 Color color() const { 571 return static_cast<Color>(GetField<int8_t>(VT_COLOR, 8)); 572 } 573 bool mutate_color(Color _color) { 574 return SetField(VT_COLOR, static_cast<int8_t>(_color)); 575 } 576 Any test_type() const { 577 return static_cast<Any>(GetField<uint8_t>(VT_TEST_TYPE, 0)); 578 } 579 bool mutate_test_type(Any _test_type) { 580 return SetField(VT_TEST_TYPE, static_cast<uint8_t>(_test_type)); 581 } 582 const void *test() const { 583 return GetPointer<const void *>(VT_TEST); 584 } 585 void *mutable_test() { 586 return GetPointer<void *>(VT_TEST); 587 } 588 const flatbuffers::Vector<const Test *> *test4() const { 589 return GetPointer<const flatbuffers::Vector<const Test *> *>(VT_TEST4); 590 } 591 flatbuffers::Vector<const Test *> *mutable_test4() { 592 return GetPointer<flatbuffers::Vector<const Test *> *>(VT_TEST4); 593 } 594 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *testarrayofstring() const { 595 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_TESTARRAYOFSTRING); 596 } 597 flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *mutable_testarrayofstring() { 598 return GetPointer<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_TESTARRAYOFSTRING); 599 } 600 /// an example documentation comment: this will end up in the generated code 601 /// multiline too 602 const flatbuffers::Vector<flatbuffers::Offset<Monster>> *testarrayoftables() const { 603 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<Monster>> *>(VT_TESTARRAYOFTABLES); 604 } 605 flatbuffers::Vector<flatbuffers::Offset<Monster>> *mutable_testarrayoftables() { 606 return GetPointer<flatbuffers::Vector<flatbuffers::Offset<Monster>> *>(VT_TESTARRAYOFTABLES); 607 } 608 const Monster *enemy() const { 609 return GetPointer<const Monster *>(VT_ENEMY); 610 } 611 Monster *mutable_enemy() { 612 return GetPointer<Monster *>(VT_ENEMY); 613 } 614 const flatbuffers::Vector<uint8_t> *testnestedflatbuffer() const { 615 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_TESTNESTEDFLATBUFFER); 616 } 617 flatbuffers::Vector<uint8_t> *mutable_testnestedflatbuffer() { 618 return GetPointer<flatbuffers::Vector<uint8_t> *>(VT_TESTNESTEDFLATBUFFER); 619 } 620 const MyGame::Example::Monster *testnestedflatbuffer_nested_root() const { 621 const uint8_t* data = testnestedflatbuffer()->Data(); 622 return flatbuffers::GetRoot<MyGame::Example::Monster>(data); 623 } 624 const Stat *testempty() const { 625 return GetPointer<const Stat *>(VT_TESTEMPTY); 626 } 627 Stat *mutable_testempty() { 628 return GetPointer<Stat *>(VT_TESTEMPTY); 629 } 630 bool testbool() const { 631 return GetField<uint8_t>(VT_TESTBOOL, 0) != 0; 632 } 633 bool mutate_testbool(bool _testbool) { 634 return SetField(VT_TESTBOOL, static_cast<uint8_t>(_testbool)); 635 } 636 int32_t testhashs32_fnv1() const { 637 return GetField<int32_t>(VT_TESTHASHS32_FNV1, 0); 638 } 639 bool mutate_testhashs32_fnv1(int32_t _testhashs32_fnv1) { 640 return SetField(VT_TESTHASHS32_FNV1, _testhashs32_fnv1); 641 } 642 uint32_t testhashu32_fnv1() const { 643 return GetField<uint32_t>(VT_TESTHASHU32_FNV1, 0); 644 } 645 bool mutate_testhashu32_fnv1(uint32_t _testhashu32_fnv1) { 646 return SetField(VT_TESTHASHU32_FNV1, _testhashu32_fnv1); 647 } 648 int64_t testhashs64_fnv1() const { 649 return GetField<int64_t>(VT_TESTHASHS64_FNV1, 0); 650 } 651 bool mutate_testhashs64_fnv1(int64_t _testhashs64_fnv1) { 652 return SetField(VT_TESTHASHS64_FNV1, _testhashs64_fnv1); 653 } 654 uint64_t testhashu64_fnv1() const { 655 return GetField<uint64_t>(VT_TESTHASHU64_FNV1, 0); 656 } 657 bool mutate_testhashu64_fnv1(uint64_t _testhashu64_fnv1) { 658 return SetField(VT_TESTHASHU64_FNV1, _testhashu64_fnv1); 659 } 660 int32_t testhashs32_fnv1a() const { 661 return GetField<int32_t>(VT_TESTHASHS32_FNV1A, 0); 662 } 663 bool mutate_testhashs32_fnv1a(int32_t _testhashs32_fnv1a) { 664 return SetField(VT_TESTHASHS32_FNV1A, _testhashs32_fnv1a); 665 } 666 uint32_t testhashu32_fnv1a() const { 667 return GetField<uint32_t>(VT_TESTHASHU32_FNV1A, 0); 668 } 669 bool mutate_testhashu32_fnv1a(uint32_t _testhashu32_fnv1a) { 670 return SetField(VT_TESTHASHU32_FNV1A, _testhashu32_fnv1a); 671 } 672 int64_t testhashs64_fnv1a() const { 673 return GetField<int64_t>(VT_TESTHASHS64_FNV1A, 0); 674 } 675 bool mutate_testhashs64_fnv1a(int64_t _testhashs64_fnv1a) { 676 return SetField(VT_TESTHASHS64_FNV1A, _testhashs64_fnv1a); 677 } 678 uint64_t testhashu64_fnv1a() const { 679 return GetField<uint64_t>(VT_TESTHASHU64_FNV1A, 0); 680 } 681 bool mutate_testhashu64_fnv1a(uint64_t _testhashu64_fnv1a) { 682 return SetField(VT_TESTHASHU64_FNV1A, _testhashu64_fnv1a); 683 } 684 const flatbuffers::Vector<uint8_t> *testarrayofbools() const { 685 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_TESTARRAYOFBOOLS); 686 } 687 flatbuffers::Vector<uint8_t> *mutable_testarrayofbools() { 688 return GetPointer<flatbuffers::Vector<uint8_t> *>(VT_TESTARRAYOFBOOLS); 689 } 690 float testf() const { 691 return GetField<float>(VT_TESTF, 3.14159f); 692 } 693 bool mutate_testf(float _testf) { 694 return SetField(VT_TESTF, _testf); 695 } 696 float testf2() const { 697 return GetField<float>(VT_TESTF2, 3.0f); 698 } 699 bool mutate_testf2(float _testf2) { 700 return SetField(VT_TESTF2, _testf2); 701 } 702 float testf3() const { 703 return GetField<float>(VT_TESTF3, 0.0f); 704 } 705 bool mutate_testf3(float _testf3) { 706 return SetField(VT_TESTF3, _testf3); 707 } 708 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *testarrayofstring2() const { 709 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_TESTARRAYOFSTRING2); 710 } 711 flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *mutable_testarrayofstring2() { 712 return GetPointer<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_TESTARRAYOFSTRING2); 713 } 714 bool Verify(flatbuffers::Verifier &verifier) const { 715 return VerifyTableStart(verifier) && 716 VerifyField<Vec3>(verifier, VT_POS) && 717 VerifyField<int16_t>(verifier, VT_MANA) && 718 VerifyField<int16_t>(verifier, VT_HP) && 719 VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_NAME) && 720 verifier.Verify(name()) && 721 VerifyField<flatbuffers::uoffset_t>(verifier, VT_INVENTORY) && 722 verifier.Verify(inventory()) && 723 VerifyField<int8_t>(verifier, VT_COLOR) && 724 VerifyField<uint8_t>(verifier, VT_TEST_TYPE) && 725 VerifyField<flatbuffers::uoffset_t>(verifier, VT_TEST) && 726 VerifyAny(verifier, test(), test_type()) && 727 VerifyField<flatbuffers::uoffset_t>(verifier, VT_TEST4) && 728 verifier.Verify(test4()) && 729 VerifyField<flatbuffers::uoffset_t>(verifier, VT_TESTARRAYOFSTRING) && 730 verifier.Verify(testarrayofstring()) && 731 verifier.VerifyVectorOfStrings(testarrayofstring()) && 732 VerifyField<flatbuffers::uoffset_t>(verifier, VT_TESTARRAYOFTABLES) && 733 verifier.Verify(testarrayoftables()) && 734 verifier.VerifyVectorOfTables(testarrayoftables()) && 735 VerifyField<flatbuffers::uoffset_t>(verifier, VT_ENEMY) && 736 verifier.VerifyTable(enemy()) && 737 VerifyField<flatbuffers::uoffset_t>(verifier, VT_TESTNESTEDFLATBUFFER) && 738 verifier.Verify(testnestedflatbuffer()) && 739 VerifyField<flatbuffers::uoffset_t>(verifier, VT_TESTEMPTY) && 740 verifier.VerifyTable(testempty()) && 741 VerifyField<uint8_t>(verifier, VT_TESTBOOL) && 742 VerifyField<int32_t>(verifier, VT_TESTHASHS32_FNV1) && 743 VerifyField<uint32_t>(verifier, VT_TESTHASHU32_FNV1) && 744 VerifyField<int64_t>(verifier, VT_TESTHASHS64_FNV1) && 745 VerifyField<uint64_t>(verifier, VT_TESTHASHU64_FNV1) && 746 VerifyField<int32_t>(verifier, VT_TESTHASHS32_FNV1A) && 747 VerifyField<uint32_t>(verifier, VT_TESTHASHU32_FNV1A) && 748 VerifyField<int64_t>(verifier, VT_TESTHASHS64_FNV1A) && 749 VerifyField<uint64_t>(verifier, VT_TESTHASHU64_FNV1A) && 750 VerifyField<flatbuffers::uoffset_t>(verifier, VT_TESTARRAYOFBOOLS) && 751 verifier.Verify(testarrayofbools()) && 752 VerifyField<float>(verifier, VT_TESTF) && 753 VerifyField<float>(verifier, VT_TESTF2) && 754 VerifyField<float>(verifier, VT_TESTF3) && 755 VerifyField<flatbuffers::uoffset_t>(verifier, VT_TESTARRAYOFSTRING2) && 756 verifier.Verify(testarrayofstring2()) && 757 verifier.VerifyVectorOfStrings(testarrayofstring2()) && 758 verifier.EndTable(); 759 } 760 MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 761 void UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 762 static flatbuffers::Offset<Monster> Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 763 }; 764 765 struct MonsterBuilder { 766 flatbuffers::FlatBufferBuilder &fbb_; 767 flatbuffers::uoffset_t start_; 768 void add_pos(const Vec3 *pos) { 769 fbb_.AddStruct(Monster::VT_POS, pos); 770 } 771 void add_mana(int16_t mana) { 772 fbb_.AddElement<int16_t>(Monster::VT_MANA, mana, 150); 773 } 774 void add_hp(int16_t hp) { 775 fbb_.AddElement<int16_t>(Monster::VT_HP, hp, 100); 776 } 777 void add_name(flatbuffers::Offset<flatbuffers::String> name) { 778 fbb_.AddOffset(Monster::VT_NAME, name); 779 } 780 void add_inventory(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> inventory) { 781 fbb_.AddOffset(Monster::VT_INVENTORY, inventory); 782 } 783 void add_color(Color color) { 784 fbb_.AddElement<int8_t>(Monster::VT_COLOR, static_cast<int8_t>(color), 8); 785 } 786 void add_test_type(Any test_type) { 787 fbb_.AddElement<uint8_t>(Monster::VT_TEST_TYPE, static_cast<uint8_t>(test_type), 0); 788 } 789 void add_test(flatbuffers::Offset<void> test) { 790 fbb_.AddOffset(Monster::VT_TEST, test); 791 } 792 void add_test4(flatbuffers::Offset<flatbuffers::Vector<const Test *>> test4) { 793 fbb_.AddOffset(Monster::VT_TEST4, test4); 794 } 795 void add_testarrayofstring(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> testarrayofstring) { 796 fbb_.AddOffset(Monster::VT_TESTARRAYOFSTRING, testarrayofstring); 797 } 798 void add_testarrayoftables(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Monster>>> testarrayoftables) { 799 fbb_.AddOffset(Monster::VT_TESTARRAYOFTABLES, testarrayoftables); 800 } 801 void add_enemy(flatbuffers::Offset<Monster> enemy) { 802 fbb_.AddOffset(Monster::VT_ENEMY, enemy); 803 } 804 void add_testnestedflatbuffer(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> testnestedflatbuffer) { 805 fbb_.AddOffset(Monster::VT_TESTNESTEDFLATBUFFER, testnestedflatbuffer); 806 } 807 void add_testempty(flatbuffers::Offset<Stat> testempty) { 808 fbb_.AddOffset(Monster::VT_TESTEMPTY, testempty); 809 } 810 void add_testbool(bool testbool) { 811 fbb_.AddElement<uint8_t>(Monster::VT_TESTBOOL, static_cast<uint8_t>(testbool), 0); 812 } 813 void add_testhashs32_fnv1(int32_t testhashs32_fnv1) { 814 fbb_.AddElement<int32_t>(Monster::VT_TESTHASHS32_FNV1, testhashs32_fnv1, 0); 815 } 816 void add_testhashu32_fnv1(uint32_t testhashu32_fnv1) { 817 fbb_.AddElement<uint32_t>(Monster::VT_TESTHASHU32_FNV1, testhashu32_fnv1, 0); 818 } 819 void add_testhashs64_fnv1(int64_t testhashs64_fnv1) { 820 fbb_.AddElement<int64_t>(Monster::VT_TESTHASHS64_FNV1, testhashs64_fnv1, 0); 821 } 822 void add_testhashu64_fnv1(uint64_t testhashu64_fnv1) { 823 fbb_.AddElement<uint64_t>(Monster::VT_TESTHASHU64_FNV1, testhashu64_fnv1, 0); 824 } 825 void add_testhashs32_fnv1a(int32_t testhashs32_fnv1a) { 826 fbb_.AddElement<int32_t>(Monster::VT_TESTHASHS32_FNV1A, testhashs32_fnv1a, 0); 827 } 828 void add_testhashu32_fnv1a(uint32_t testhashu32_fnv1a) { 829 fbb_.AddElement<uint32_t>(Monster::VT_TESTHASHU32_FNV1A, testhashu32_fnv1a, 0); 830 } 831 void add_testhashs64_fnv1a(int64_t testhashs64_fnv1a) { 832 fbb_.AddElement<int64_t>(Monster::VT_TESTHASHS64_FNV1A, testhashs64_fnv1a, 0); 833 } 834 void add_testhashu64_fnv1a(uint64_t testhashu64_fnv1a) { 835 fbb_.AddElement<uint64_t>(Monster::VT_TESTHASHU64_FNV1A, testhashu64_fnv1a, 0); 836 } 837 void add_testarrayofbools(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> testarrayofbools) { 838 fbb_.AddOffset(Monster::VT_TESTARRAYOFBOOLS, testarrayofbools); 839 } 840 void add_testf(float testf) { 841 fbb_.AddElement<float>(Monster::VT_TESTF, testf, 3.14159f); 842 } 843 void add_testf2(float testf2) { 844 fbb_.AddElement<float>(Monster::VT_TESTF2, testf2, 3.0f); 845 } 846 void add_testf3(float testf3) { 847 fbb_.AddElement<float>(Monster::VT_TESTF3, testf3, 0.0f); 848 } 849 void add_testarrayofstring2(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> testarrayofstring2) { 850 fbb_.AddOffset(Monster::VT_TESTARRAYOFSTRING2, testarrayofstring2); 851 } 852 MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) 853 : fbb_(_fbb) { 854 start_ = fbb_.StartTable(); 855 } 856 MonsterBuilder &operator=(const MonsterBuilder &); 857 flatbuffers::Offset<Monster> Finish() { 858 const auto end = fbb_.EndTable(start_, 29); 859 auto o = flatbuffers::Offset<Monster>(end); 860 fbb_.Required(o, Monster::VT_NAME); 861 return o; 862 } 863 }; 864 865 inline flatbuffers::Offset<Monster> CreateMonster( 866 flatbuffers::FlatBufferBuilder &_fbb, 867 const Vec3 *pos = 0, 868 int16_t mana = 150, 869 int16_t hp = 100, 870 flatbuffers::Offset<flatbuffers::String> name = 0, 871 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> inventory = 0, 872 Color color = Color_Blue, 873 Any test_type = Any_NONE, 874 flatbuffers::Offset<void> test = 0, 875 flatbuffers::Offset<flatbuffers::Vector<const Test *>> test4 = 0, 876 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> testarrayofstring = 0, 877 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Monster>>> testarrayoftables = 0, 878 flatbuffers::Offset<Monster> enemy = 0, 879 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> testnestedflatbuffer = 0, 880 flatbuffers::Offset<Stat> testempty = 0, 881 bool testbool = false, 882 int32_t testhashs32_fnv1 = 0, 883 uint32_t testhashu32_fnv1 = 0, 884 int64_t testhashs64_fnv1 = 0, 885 uint64_t testhashu64_fnv1 = 0, 886 int32_t testhashs32_fnv1a = 0, 887 uint32_t testhashu32_fnv1a = 0, 888 int64_t testhashs64_fnv1a = 0, 889 uint64_t testhashu64_fnv1a = 0, 890 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> testarrayofbools = 0, 891 float testf = 3.14159f, 892 float testf2 = 3.0f, 893 float testf3 = 0.0f, 894 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> testarrayofstring2 = 0) { 895 MonsterBuilder builder_(_fbb); 896 builder_.add_testhashu64_fnv1a(testhashu64_fnv1a); 897 builder_.add_testhashs64_fnv1a(testhashs64_fnv1a); 898 builder_.add_testhashu64_fnv1(testhashu64_fnv1); 899 builder_.add_testhashs64_fnv1(testhashs64_fnv1); 900 builder_.add_testarrayofstring2(testarrayofstring2); 901 builder_.add_testf3(testf3); 902 builder_.add_testf2(testf2); 903 builder_.add_testf(testf); 904 builder_.add_testarrayofbools(testarrayofbools); 905 builder_.add_testhashu32_fnv1a(testhashu32_fnv1a); 906 builder_.add_testhashs32_fnv1a(testhashs32_fnv1a); 907 builder_.add_testhashu32_fnv1(testhashu32_fnv1); 908 builder_.add_testhashs32_fnv1(testhashs32_fnv1); 909 builder_.add_testempty(testempty); 910 builder_.add_testnestedflatbuffer(testnestedflatbuffer); 911 builder_.add_enemy(enemy); 912 builder_.add_testarrayoftables(testarrayoftables); 913 builder_.add_testarrayofstring(testarrayofstring); 914 builder_.add_test4(test4); 915 builder_.add_test(test); 916 builder_.add_inventory(inventory); 917 builder_.add_name(name); 918 builder_.add_pos(pos); 919 builder_.add_hp(hp); 920 builder_.add_mana(mana); 921 builder_.add_testbool(testbool); 922 builder_.add_test_type(test_type); 923 builder_.add_color(color); 924 return builder_.Finish(); 925 } 926 927 inline flatbuffers::Offset<Monster> CreateMonsterDirect( 928 flatbuffers::FlatBufferBuilder &_fbb, 929 const Vec3 *pos = 0, 930 int16_t mana = 150, 931 int16_t hp = 100, 932 const char *name = nullptr, 933 const std::vector<uint8_t> *inventory = nullptr, 934 Color color = Color_Blue, 935 Any test_type = Any_NONE, 936 flatbuffers::Offset<void> test = 0, 937 const std::vector<const Test *> *test4 = nullptr, 938 const std::vector<flatbuffers::Offset<flatbuffers::String>> *testarrayofstring = nullptr, 939 const std::vector<flatbuffers::Offset<Monster>> *testarrayoftables = nullptr, 940 flatbuffers::Offset<Monster> enemy = 0, 941 const std::vector<uint8_t> *testnestedflatbuffer = nullptr, 942 flatbuffers::Offset<Stat> testempty = 0, 943 bool testbool = false, 944 int32_t testhashs32_fnv1 = 0, 945 uint32_t testhashu32_fnv1 = 0, 946 int64_t testhashs64_fnv1 = 0, 947 uint64_t testhashu64_fnv1 = 0, 948 int32_t testhashs32_fnv1a = 0, 949 uint32_t testhashu32_fnv1a = 0, 950 int64_t testhashs64_fnv1a = 0, 951 uint64_t testhashu64_fnv1a = 0, 952 const std::vector<uint8_t> *testarrayofbools = nullptr, 953 float testf = 3.14159f, 954 float testf2 = 3.0f, 955 float testf3 = 0.0f, 956 const std::vector<flatbuffers::Offset<flatbuffers::String>> *testarrayofstring2 = nullptr) { 957 return MyGame::Example::CreateMonster( 958 _fbb, 959 pos, 960 mana, 961 hp, 962 name ? _fbb.CreateString(name) : 0, 963 inventory ? _fbb.CreateVector<uint8_t>(*inventory) : 0, 964 color, 965 test_type, 966 test, 967 test4 ? _fbb.CreateVector<const Test *>(*test4) : 0, 968 testarrayofstring ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*testarrayofstring) : 0, 969 testarrayoftables ? _fbb.CreateVector<flatbuffers::Offset<Monster>>(*testarrayoftables) : 0, 970 enemy, 971 testnestedflatbuffer ? _fbb.CreateVector<uint8_t>(*testnestedflatbuffer) : 0, 972 testempty, 973 testbool, 974 testhashs32_fnv1, 975 testhashu32_fnv1, 976 testhashs64_fnv1, 977 testhashu64_fnv1, 978 testhashs32_fnv1a, 979 testhashu32_fnv1a, 980 testhashs64_fnv1a, 981 testhashu64_fnv1a, 982 testarrayofbools ? _fbb.CreateVector<uint8_t>(*testarrayofbools) : 0, 983 testf, 984 testf2, 985 testf3, 986 testarrayofstring2 ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*testarrayofstring2) : 0); 987 } 988 989 flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 990 991 } // namespace Example 992 993 namespace Example2 { 994 995 inline MonsterT *Monster::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 996 auto _o = new MonsterT(); 997 UnPackTo(_o, _resolver); 998 return _o; 999 } 1000 1001 inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1002 (void)_o; 1003 (void)_resolver; 1004 } 1005 1006 inline flatbuffers::Offset<Monster> Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1007 return CreateMonster(_fbb, _o, _rehasher); 1008 } 1009 1010 inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1011 (void)_rehasher; 1012 (void)_o; 1013 return MyGame::Example2::CreateMonster( 1014 _fbb); 1015 } 1016 1017 } // namespace Example2 1018 1019 namespace Example { 1020 1021 inline TestSimpleTableWithEnumT *TestSimpleTableWithEnum::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1022 auto _o = new TestSimpleTableWithEnumT(); 1023 UnPackTo(_o, _resolver); 1024 return _o; 1025 } 1026 1027 inline void TestSimpleTableWithEnum::UnPackTo(TestSimpleTableWithEnumT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1028 (void)_o; 1029 (void)_resolver; 1030 { auto _e = color(); _o->color = _e; }; 1031 } 1032 1033 inline flatbuffers::Offset<TestSimpleTableWithEnum> TestSimpleTableWithEnum::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1034 return CreateTestSimpleTableWithEnum(_fbb, _o, _rehasher); 1035 } 1036 1037 inline flatbuffers::Offset<TestSimpleTableWithEnum> CreateTestSimpleTableWithEnum(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1038 (void)_rehasher; 1039 (void)_o; 1040 auto _color = _o->color; 1041 return MyGame::Example::CreateTestSimpleTableWithEnum( 1042 _fbb, 1043 _color); 1044 } 1045 1046 inline StatT *Stat::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1047 auto _o = new StatT(); 1048 UnPackTo(_o, _resolver); 1049 return _o; 1050 } 1051 1052 inline void Stat::UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1053 (void)_o; 1054 (void)_resolver; 1055 { auto _e = id(); if (_e) _o->id = _e->str(); }; 1056 { auto _e = val(); _o->val = _e; }; 1057 { auto _e = count(); _o->count = _e; }; 1058 } 1059 1060 inline flatbuffers::Offset<Stat> Stat::Pack(flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1061 return CreateStat(_fbb, _o, _rehasher); 1062 } 1063 1064 inline flatbuffers::Offset<Stat> CreateStat(flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1065 (void)_rehasher; 1066 (void)_o; 1067 auto _id = _o->id.size() ? _fbb.CreateString(_o->id) : 0; 1068 auto _val = _o->val; 1069 auto _count = _o->count; 1070 return MyGame::Example::CreateStat( 1071 _fbb, 1072 _id, 1073 _val, 1074 _count); 1075 } 1076 1077 inline MonsterT *Monster::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1078 auto _o = new MonsterT(); 1079 UnPackTo(_o, _resolver); 1080 return _o; 1081 } 1082 1083 inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1084 (void)_o; 1085 (void)_resolver; 1086 { auto _e = pos(); if (_e) _o->pos = std::unique_ptr<Vec3>(new Vec3(*_e)); }; 1087 { auto _e = mana(); _o->mana = _e; }; 1088 { auto _e = hp(); _o->hp = _e; }; 1089 { auto _e = name(); if (_e) _o->name = _e->str(); }; 1090 { auto _e = inventory(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->inventory.push_back(_e->Get(_i)); } }; 1091 { auto _e = color(); _o->color = _e; }; 1092 { auto _e = test_type(); _o->test.type = _e; }; 1093 { auto _e = test(); if (_e) _o->test.table = AnyUnion::UnPack(_e, test_type(),_resolver); }; 1094 { auto _e = test4(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test4.push_back(*_e->Get(_i)); } }; 1095 { auto _e = testarrayofstring(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring.push_back(_e->Get(_i)->str()); } }; 1096 { auto _e = testarrayoftables(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayoftables.push_back(std::unique_ptr<MonsterT>(_e->Get(_i)->UnPack(_resolver))); } }; 1097 { auto _e = enemy(); if (_e) _o->enemy = std::unique_ptr<MonsterT>(_e->UnPack(_resolver)); }; 1098 { auto _e = testnestedflatbuffer(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testnestedflatbuffer.push_back(_e->Get(_i)); } }; 1099 { auto _e = testempty(); if (_e) _o->testempty = std::unique_ptr<StatT>(_e->UnPack(_resolver)); }; 1100 { auto _e = testbool(); _o->testbool = _e; }; 1101 { auto _e = testhashs32_fnv1(); _o->testhashs32_fnv1 = _e; }; 1102 { auto _e = testhashu32_fnv1(); _o->testhashu32_fnv1 = _e; }; 1103 { auto _e = testhashs64_fnv1(); _o->testhashs64_fnv1 = _e; }; 1104 { auto _e = testhashu64_fnv1(); _o->testhashu64_fnv1 = _e; }; 1105 { auto _e = testhashs32_fnv1a(); _o->testhashs32_fnv1a = _e; }; 1106 { auto _e = testhashu32_fnv1a(); if (_resolver) (*_resolver)(reinterpret_cast<void **>(&_o->testhashu32_fnv1a), static_cast<flatbuffers::hash_value_t>(_e)); else _o->testhashu32_fnv1a = nullptr; }; 1107 { auto _e = testhashs64_fnv1a(); _o->testhashs64_fnv1a = _e; }; 1108 { auto _e = testhashu64_fnv1a(); _o->testhashu64_fnv1a = _e; }; 1109 { auto _e = testarrayofbools(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofbools.push_back(_e->Get(_i) != 0); } }; 1110 { auto _e = testf(); _o->testf = _e; }; 1111 { auto _e = testf2(); _o->testf2 = _e; }; 1112 { auto _e = testf3(); _o->testf3 = _e; }; 1113 { auto _e = testarrayofstring2(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring2.push_back(_e->Get(_i)->str()); } }; 1114 } 1115 1116 inline flatbuffers::Offset<Monster> Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1117 return CreateMonster(_fbb, _o, _rehasher); 1118 } 1119 1120 inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1121 (void)_rehasher; 1122 (void)_o; 1123 auto _pos = _o->pos ? _o->pos.get() : 0; 1124 auto _mana = _o->mana; 1125 auto _hp = _o->hp; 1126 auto _name = _fbb.CreateString(_o->name); 1127 auto _inventory = _o->inventory.size() ? _fbb.CreateVector(_o->inventory) : 0; 1128 auto _color = _o->color; 1129 auto _test_type = _o->test.type; 1130 auto _test = _o->test.Pack(_fbb); 1131 auto _test4 = _o->test4.size() ? _fbb.CreateVectorOfStructs(_o->test4) : 0; 1132 auto _testarrayofstring = _o->testarrayofstring.size() ? _fbb.CreateVectorOfStrings(_o->testarrayofstring) : 0; 1133 auto _testarrayoftables = _o->testarrayoftables.size() ? _fbb.CreateVector<flatbuffers::Offset<Monster>>(_o->testarrayoftables.size(), [&](size_t i) { return CreateMonster(_fbb, _o->testarrayoftables[i].get(), _rehasher); }) : 0; 1134 auto _enemy = _o->enemy ? CreateMonster(_fbb, _o->enemy.get(), _rehasher) : 0; 1135 auto _testnestedflatbuffer = _o->testnestedflatbuffer.size() ? _fbb.CreateVector(_o->testnestedflatbuffer) : 0; 1136 auto _testempty = _o->testempty ? CreateStat(_fbb, _o->testempty.get(), _rehasher) : 0; 1137 auto _testbool = _o->testbool; 1138 auto _testhashs32_fnv1 = _o->testhashs32_fnv1; 1139 auto _testhashu32_fnv1 = _o->testhashu32_fnv1; 1140 auto _testhashs64_fnv1 = _o->testhashs64_fnv1; 1141 auto _testhashu64_fnv1 = _o->testhashu64_fnv1; 1142 auto _testhashs32_fnv1a = _o->testhashs32_fnv1a; 1143 auto _testhashu32_fnv1a = _rehasher ? static_cast<uint32_t>((*_rehasher)(_o->testhashu32_fnv1a)) : 0; 1144 auto _testhashs64_fnv1a = _o->testhashs64_fnv1a; 1145 auto _testhashu64_fnv1a = _o->testhashu64_fnv1a; 1146 auto _testarrayofbools = _o->testarrayofbools.size() ? _fbb.CreateVector(_o->testarrayofbools) : 0; 1147 auto _testf = _o->testf; 1148 auto _testf2 = _o->testf2; 1149 auto _testf3 = _o->testf3; 1150 auto _testarrayofstring2 = _o->testarrayofstring2.size() ? _fbb.CreateVectorOfStrings(_o->testarrayofstring2) : 0; 1151 return MyGame::Example::CreateMonster( 1152 _fbb, 1153 _pos, 1154 _mana, 1155 _hp, 1156 _name, 1157 _inventory, 1158 _color, 1159 _test_type, 1160 _test, 1161 _test4, 1162 _testarrayofstring, 1163 _testarrayoftables, 1164 _enemy, 1165 _testnestedflatbuffer, 1166 _testempty, 1167 _testbool, 1168 _testhashs32_fnv1, 1169 _testhashu32_fnv1, 1170 _testhashs64_fnv1, 1171 _testhashu64_fnv1, 1172 _testhashs32_fnv1a, 1173 _testhashu32_fnv1a, 1174 _testhashs64_fnv1a, 1175 _testhashu64_fnv1a, 1176 _testarrayofbools, 1177 _testf, 1178 _testf2, 1179 _testf3, 1180 _testarrayofstring2); 1181 } 1182 1183 inline bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type) { 1184 switch (type) { 1185 case Any_NONE: { 1186 return true; 1187 } 1188 case Any_Monster: { 1189 auto ptr = reinterpret_cast<const Monster *>(obj); 1190 return verifier.VerifyTable(ptr); 1191 } 1192 case Any_TestSimpleTableWithEnum: { 1193 auto ptr = reinterpret_cast<const TestSimpleTableWithEnum *>(obj); 1194 return verifier.VerifyTable(ptr); 1195 } 1196 case Any_MyGame_Example2_Monster: { 1197 auto ptr = reinterpret_cast<const MyGame::Example2::Monster *>(obj); 1198 return verifier.VerifyTable(ptr); 1199 } 1200 default: return false; 1201 } 1202 } 1203 1204 inline bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) { 1205 if (values->size() != types->size()) return false; 1206 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { 1207 if (!VerifyAny( 1208 verifier, values->Get(i), types->GetEnum<Any>(i))) { 1209 return false; 1210 } 1211 } 1212 return true; 1213 } 1214 1215 inline flatbuffers::NativeTable *AnyUnion::UnPack(const void *obj, Any type, const flatbuffers::resolver_function_t *resolver) { 1216 switch (type) { 1217 case Any_Monster: { 1218 auto ptr = reinterpret_cast<const Monster *>(obj); 1219 return ptr->UnPack(resolver); 1220 } 1221 case Any_TestSimpleTableWithEnum: { 1222 auto ptr = reinterpret_cast<const TestSimpleTableWithEnum *>(obj); 1223 return ptr->UnPack(resolver); 1224 } 1225 case Any_MyGame_Example2_Monster: { 1226 auto ptr = reinterpret_cast<const MyGame::Example2::Monster *>(obj); 1227 return ptr->UnPack(resolver); 1228 } 1229 default: return nullptr; 1230 } 1231 } 1232 1233 inline flatbuffers::Offset<void> AnyUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { 1234 switch (type) { 1235 case Any_Monster: { 1236 auto ptr = reinterpret_cast<const MonsterT *>(table); 1237 return CreateMonster(_fbb, ptr, _rehasher).Union(); 1238 } 1239 case Any_TestSimpleTableWithEnum: { 1240 auto ptr = reinterpret_cast<const TestSimpleTableWithEnumT *>(table); 1241 return CreateTestSimpleTableWithEnum(_fbb, ptr, _rehasher).Union(); 1242 } 1243 case Any_MyGame_Example2_Monster: { 1244 auto ptr = reinterpret_cast<const MyGame::Example2::MonsterT *>(table); 1245 return CreateMonster(_fbb, ptr, _rehasher).Union(); 1246 } 1247 default: return 0; 1248 } 1249 } 1250 1251 inline void AnyUnion::Reset() { 1252 switch (type) { 1253 case Any_Monster: { 1254 auto ptr = reinterpret_cast<MonsterT *>(table); 1255 delete ptr; 1256 break; 1257 } 1258 case Any_TestSimpleTableWithEnum: { 1259 auto ptr = reinterpret_cast<TestSimpleTableWithEnumT *>(table); 1260 delete ptr; 1261 break; 1262 } 1263 case Any_MyGame_Example2_Monster: { 1264 auto ptr = reinterpret_cast<MyGame::Example2::MonsterT *>(table); 1265 delete ptr; 1266 break; 1267 } 1268 default: break; 1269 } 1270 table = nullptr; 1271 type = Any_NONE; 1272 } 1273 1274 inline const MyGame::Example::Monster *GetMonster(const void *buf) { 1275 return flatbuffers::GetRoot<MyGame::Example::Monster>(buf); 1276 } 1277 1278 inline Monster *GetMutableMonster(void *buf) { 1279 return flatbuffers::GetMutableRoot<Monster>(buf); 1280 } 1281 1282 inline const char *MonsterIdentifier() { 1283 return "MONS"; 1284 } 1285 1286 inline bool MonsterBufferHasIdentifier(const void *buf) { 1287 return flatbuffers::BufferHasIdentifier( 1288 buf, MonsterIdentifier()); 1289 } 1290 1291 inline bool VerifyMonsterBuffer( 1292 flatbuffers::Verifier &verifier) { 1293 return verifier.VerifyBuffer<MyGame::Example::Monster>(MonsterIdentifier()); 1294 } 1295 1296 inline const char *MonsterExtension() { 1297 return "mon"; 1298 } 1299 1300 inline void FinishMonsterBuffer( 1301 flatbuffers::FlatBufferBuilder &fbb, 1302 flatbuffers::Offset<MyGame::Example::Monster> root) { 1303 fbb.Finish(root, MonsterIdentifier()); 1304 } 1305 1306 inline std::unique_ptr<MonsterT> UnPackMonster( 1307 const void *buf, 1308 const flatbuffers::resolver_function_t *res = nullptr) { 1309 return std::unique_ptr<MonsterT>(GetMonster(buf)->UnPack(res)); 1310 } 1311 1312 } // namespace Example 1313 } // namespace MyGame 1314 1315 #endif // FLATBUFFERS_GENERATED_MONSTERTEST_MYGAME_EXAMPLE_H_ 1316