From d591b6f0f0e46e9e77ac2a1f75cd400a46f6e37b Mon Sep 17 00:00:00 2001 From: le-michael Date: Wed, 26 Oct 2022 15:30:29 -0700 Subject: [PATCH] Update DartTest.sh golden files --- dart/test/bool_structs_generated.dart | 207 +++++++++++++++ dart/test/list_of_enums_generated.dart | 155 +++++++++++ dart/test/monster_test.fbs | 17 ++ ...onster_test_my_game.example_generated.dart | 241 +++++++++++++++--- dart/test/monsterdata_test.mon | Bin 592 -> 600 bytes 5 files changed, 591 insertions(+), 29 deletions(-) create mode 100644 dart/test/bool_structs_generated.dart create mode 100644 dart/test/list_of_enums_generated.dart diff --git a/dart/test/bool_structs_generated.dart b/dart/test/bool_structs_generated.dart new file mode 100644 index 00000000000..cdd8a5ebce1 --- /dev/null +++ b/dart/test/bool_structs_generated.dart @@ -0,0 +1,207 @@ +// 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 Foo { + Foo._(this._bc, this._bcOffset); + factory Foo(List bytes) { + final rootRef = fb.BufferContext.fromBytes(bytes); + return reader.read(rootRef, 0); + } + + static const fb.Reader reader = _FooReader(); + + final fb.BufferContext _bc; + final int _bcOffset; + + FooProperties? get myFoo => FooProperties.reader.vTableGetNullable(_bc, _bcOffset, 4); + + @override + String toString() { + return 'Foo{myFoo: ${myFoo}}'; + } + + FooT unpack() => FooT( + myFoo: myFoo?.unpack()); + + static int pack(fb.Builder fbBuilder, FooT? object) { + if (object == null) return 0; + return object.pack(fbBuilder); + } +} + +class FooT implements fb.Packable { + FooPropertiesT? myFoo; + + FooT({ + this.myFoo}); + + @override + int pack(fb.Builder fbBuilder) { + fbBuilder.startTable(1); + if (myFoo != null) { + fbBuilder.addStruct(0, myFoo!.pack(fbBuilder)); + } + return fbBuilder.endTable(); + } + + @override + String toString() { + return 'FooT{myFoo: ${myFoo}}'; + } +} + +class _FooReader extends fb.TableReader { + const _FooReader(); + + @override + Foo createObject(fb.BufferContext bc, int offset) => + Foo._(bc, offset); +} + +class FooBuilder { + FooBuilder(this.fbBuilder); + + final fb.Builder fbBuilder; + + void begin() { + fbBuilder.startTable(1); + } + + int addMyFoo(int offset) { + fbBuilder.addStruct(0, offset); + return fbBuilder.offset; + } + + int finish() { + return fbBuilder.endTable(); + } +} + +class FooObjectBuilder extends fb.ObjectBuilder { + final FooPropertiesObjectBuilder? _myFoo; + + FooObjectBuilder({ + FooPropertiesObjectBuilder? myFoo, + }) + : _myFoo = myFoo; + + /// Finish building, and store into the [fbBuilder]. + @override + int finish(fb.Builder fbBuilder) { + fbBuilder.startTable(1); + if (_myFoo != null) { + fbBuilder.addStruct(0, _myFoo!.finish(fbBuilder)); + } + 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 FooProperties { + FooProperties._(this._bc, this._bcOffset); + + static const fb.Reader reader = _FooPropertiesReader(); + + final fb.BufferContext _bc; + final int _bcOffset; + + bool get a => const fb.BoolReader().read(_bc, _bcOffset + 0); + bool get b => const fb.BoolReader().read(_bc, _bcOffset + 1); + + @override + String toString() { + return 'FooProperties{a: ${a}, b: ${b}}'; + } + + FooPropertiesT unpack() => FooPropertiesT( + a: a, + b: b); + + static int pack(fb.Builder fbBuilder, FooPropertiesT? object) { + if (object == null) return 0; + return object.pack(fbBuilder); + } +} + +class FooPropertiesT implements fb.Packable { + bool a; + bool b; + + FooPropertiesT({ + required this.a, + required this.b}); + + @override + int pack(fb.Builder fbBuilder) { + fbBuilder.putBool(b); + fbBuilder.putBool(a); + return fbBuilder.offset; + } + + @override + String toString() { + return 'FooPropertiesT{a: ${a}, b: ${b}}'; + } +} + +class _FooPropertiesReader extends fb.StructReader { + const _FooPropertiesReader(); + + @override + int get size => 2; + + @override + FooProperties createObject(fb.BufferContext bc, int offset) => + FooProperties._(bc, offset); +} + +class FooPropertiesBuilder { + FooPropertiesBuilder(this.fbBuilder); + + final fb.Builder fbBuilder; + + int finish(bool a, bool b) { + fbBuilder.putBool(b); + fbBuilder.putBool(a); + return fbBuilder.offset; + } + +} + +class FooPropertiesObjectBuilder extends fb.ObjectBuilder { + final bool _a; + final bool _b; + + FooPropertiesObjectBuilder({ + required bool a, + required bool b, + }) + : _a = a, + _b = b; + + /// Finish building, and store into the [fbBuilder]. + @override + int finish(fb.Builder fbBuilder) { + fbBuilder.putBool(_b); + fbBuilder.putBool(_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; + } +} diff --git a/dart/test/list_of_enums_generated.dart b/dart/test/list_of_enums_generated.dart new file mode 100644 index 00000000000..eb837a5bc3a --- /dev/null +++ b/dart/test/list_of_enums_generated.dart @@ -0,0 +1,155 @@ +// 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 OptionsEnum { + final int value; + const OptionsEnum._(this.value); + + factory OptionsEnum.fromValue(int value) { + final result = values[value]; + if (result == null) { + throw StateError('Invalid value $value for bit flag enum OptionsEnum'); + } + return result; + } + + static OptionsEnum? _createOrNull(int? value) => + value == null ? null : OptionsEnum.fromValue(value); + + static const int minValue = 1; + static const int maxValue = 3; + static bool containsValue(int value) => values.containsKey(value); + + static const OptionsEnum A = OptionsEnum._(1); + static const OptionsEnum B = OptionsEnum._(2); + static const OptionsEnum C = OptionsEnum._(3); + static const Map values = { + 1: A, + 2: B, + 3: C}; + + static const fb.Reader reader = _OptionsEnumReader(); + + @override + String toString() { + return 'OptionsEnum{value: $value}'; + } +} + +class _OptionsEnumReader extends fb.Reader { + const _OptionsEnumReader(); + + @override + int get size => 4; + + @override + OptionsEnum read(fb.BufferContext bc, int offset) => + OptionsEnum.fromValue(const fb.Uint32Reader().read(bc, offset)); +} + +class MyTable { + MyTable._(this._bc, this._bcOffset); + factory MyTable(List bytes) { + final rootRef = fb.BufferContext.fromBytes(bytes); + return reader.read(rootRef, 0); + } + + static const fb.Reader reader = _MyTableReader(); + + final fb.BufferContext _bc; + final int _bcOffset; + + List? get options => const fb.ListReader(OptionsEnum.reader).vTableGetNullable(_bc, _bcOffset, 4); + + @override + String toString() { + return 'MyTable{options: ${options}}'; + } + + MyTableT unpack() => MyTableT( + options: const fb.ListReader(OptionsEnum.reader, lazy: false).vTableGetNullable(_bc, _bcOffset, 4)); + + static int pack(fb.Builder fbBuilder, MyTableT? object) { + if (object == null) return 0; + return object.pack(fbBuilder); + } +} + +class MyTableT implements fb.Packable { + List? options; + + MyTableT({ + this.options}); + + @override + int pack(fb.Builder fbBuilder) { + final int? optionsOffset = options == null ? null + : fbBuilder.writeListUint32(options!.map((f) => f.value).toList()); + fbBuilder.startTable(1); + fbBuilder.addOffset(0, optionsOffset); + return fbBuilder.endTable(); + } + + @override + String toString() { + return 'MyTableT{options: ${options}}'; + } +} + +class _MyTableReader extends fb.TableReader { + const _MyTableReader(); + + @override + MyTable createObject(fb.BufferContext bc, int offset) => + MyTable._(bc, offset); +} + +class MyTableBuilder { + MyTableBuilder(this.fbBuilder); + + final fb.Builder fbBuilder; + + void begin() { + fbBuilder.startTable(1); + } + + int addOptionsOffset(int? offset) { + fbBuilder.addOffset(0, offset); + return fbBuilder.offset; + } + + int finish() { + return fbBuilder.endTable(); + } +} + +class MyTableObjectBuilder extends fb.ObjectBuilder { + final List? _options; + + MyTableObjectBuilder({ + List? options, + }) + : _options = options; + + /// Finish building, and store into the [fbBuilder]. + @override + int finish(fb.Builder fbBuilder) { + final int? optionsOffset = _options == null ? null + : fbBuilder.writeListUint32(_options!.map((f) => f.value).toList()); + fbBuilder.startTable(1); + fbBuilder.addOffset(0, optionsOffset); + 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 fdd5acfcc32..14d34cb4ab0 100644 --- a/dart/test/monster_test.fbs +++ b/dart/test/monster_test.fbs @@ -31,6 +31,14 @@ enum Race:byte { Elf, } +enum LongEnum:ulong (bit_flags) { + LongOne = 1, + LongTwo = 2, + // Because this is a bitflag, 40 will be out of range of a 32-bit integer, + // allowing us to exercise any logic special to big numbers. + LongBig = 40, +} + union Any { Monster, TestSimpleTableWithEnum, MyGame.Example2.Monster } union AnyUniqueAliases { M: Monster, TS: TestSimpleTableWithEnum, M2: MyGame.Example2.Monster } @@ -62,6 +70,10 @@ struct StructOfStructs { c: Ability; } +struct StructOfStructsOfStructs { + a: StructOfStructs; +} + table Stat { id:string; val:long; @@ -124,6 +136,11 @@ table Monster { signed_enum:Race = None (id:48); testrequirednestedflatbuffer:[ubyte] (id:49, nested_flatbuffer: "Monster"); scalar_key_sorted_tables:[Stat] (id: 50); + native_inline:Test (id: 51, native_inline); + // The default value of this enum will be a numeric zero, which isn't a valid + // enum value. + long_enum_non_enum_default:LongEnum (id: 52); + long_enum_normal_default:LongEnum = LongOne (id: 53); } table TypeAliases { diff --git a/dart/test/monster_test_my_game.example_generated.dart b/dart/test/monster_test_my_game.example_generated.dart index 8db82e31fbe..174fe1d8dd9 100644 --- a/dart/test/monster_test_my_game.example_generated.dart +++ b/dart/test/monster_test_my_game.example_generated.dart @@ -17,7 +17,11 @@ class Color { factory Color.fromValue(int value) { final result = values[value]; if (result == null) { - throw StateError('Invalid value $value for bit flag enum Color'); + if (value == 0) { + return Color._(0); + } else { + throw StateError('Invalid value $value for bit flag enum Color'); + } } return result; } @@ -66,7 +70,7 @@ class Race { factory Race.fromValue(int value) { final result = values[value]; if (result == null) { - throw StateError('Invalid value $value for bit flag enum Race'); + throw StateError('Invalid value $value for bit flag enum Race'); } return result; } @@ -107,6 +111,54 @@ class _RaceReader extends fb.Reader { Race.fromValue(const fb.Int8Reader().read(bc, offset)); } +class LongEnum { + final int value; + const LongEnum._(this.value); + + factory LongEnum.fromValue(int value) { + final result = values[value]; + if (result == null) { + if (value == 0) { + return LongEnum._(0); + } else { + throw StateError('Invalid value $value for bit flag enum LongEnum'); + } + } + return result; + } + + static LongEnum? _createOrNull(int? value) => + value == null ? null : LongEnum.fromValue(value); + + static bool containsValue(int value) => values.containsKey(value); + + static const LongEnum LongOne = LongEnum._(2); + static const LongEnum LongTwo = LongEnum._(4); + static const LongEnum LongBig = LongEnum._(1099511627776); + static const Map values = { + 2: LongOne, + 4: LongTwo, + 1099511627776: LongBig}; + + static const fb.Reader reader = _LongEnumReader(); + + @override + String toString() { + return 'LongEnum{value: $value}'; + } +} + +class _LongEnumReader extends fb.Reader { + const _LongEnumReader(); + + @override + int get size => 8; + + @override + LongEnum read(fb.BufferContext bc, int offset) => + LongEnum.fromValue(const fb.Uint64Reader().read(bc, offset)); +} + class AnyTypeId { final int value; const AnyTypeId._(this.value); @@ -114,7 +166,7 @@ class AnyTypeId { factory AnyTypeId.fromValue(int value) { final result = values[value]; if (result == null) { - throw StateError('Invalid value $value for bit flag enum AnyTypeId'); + throw StateError('Invalid value $value for bit flag enum AnyTypeId'); } return result; } @@ -162,7 +214,7 @@ class AnyUniqueAliasesTypeId { factory AnyUniqueAliasesTypeId.fromValue(int value) { final result = values[value]; if (result == null) { - throw StateError('Invalid value $value for bit flag enum AnyUniqueAliasesTypeId'); + throw StateError('Invalid value $value for bit flag enum AnyUniqueAliasesTypeId'); } return result; } @@ -210,7 +262,7 @@ class AnyAmbiguousAliasesTypeId { factory AnyAmbiguousAliasesTypeId.fromValue(int value) { final result = values[value]; if (result == null) { - throw StateError('Invalid value $value for bit flag enum AnyAmbiguousAliasesTypeId'); + throw StateError('Invalid value $value for bit flag enum AnyAmbiguousAliasesTypeId'); } return result; } @@ -264,7 +316,7 @@ class Test { @override String toString() { - return 'Test{a: $a, b: $b}'; + return 'Test{a: ${a}, b: ${b}}'; } TestT unpack() => TestT( @@ -295,7 +347,7 @@ class TestT implements fb.Packable { @override String toString() { - return 'TestT{a: $a, b: $b}'; + return 'TestT{a: ${a}, b: ${b}}'; } } @@ -368,7 +420,7 @@ class TestSimpleTableWithEnum { @override String toString() { - return 'TestSimpleTableWithEnum{color: $color}'; + return 'TestSimpleTableWithEnum{color: ${color}}'; } TestSimpleTableWithEnumT unpack() => TestSimpleTableWithEnumT( @@ -395,7 +447,7 @@ class TestSimpleTableWithEnumT implements fb.Packable { @override String toString() { - return 'TestSimpleTableWithEnumT{color: $color}'; + return 'TestSimpleTableWithEnumT{color: ${color}}'; } } @@ -467,7 +519,7 @@ class Vec3 { @override String toString() { - return 'Vec3{x: $x, y: $y, z: $z, test1: $test1, test2: $test2, test3: $test3}'; + return 'Vec3{x: ${x}, y: ${y}, z: ${z}, test1: ${test1}, test2: ${test2}, test3: ${test3}}'; } Vec3T unpack() => Vec3T( @@ -516,7 +568,7 @@ class Vec3T implements fb.Packable { @override String toString() { - return 'Vec3T{x: $x, y: $y, z: $z, test1: $test1, test2: $test2, test3: $test3}'; + return 'Vec3T{x: ${x}, y: ${y}, z: ${z}, test1: ${test1}, test2: ${test2}, test3: ${test3}}'; } } @@ -610,7 +662,7 @@ class Ability { @override String toString() { - return 'Ability{id: $id, distance: $distance}'; + return 'Ability{id: ${id}, distance: ${distance}}'; } AbilityT unpack() => AbilityT( @@ -640,7 +692,7 @@ class AbilityT implements fb.Packable { @override String toString() { - return 'AbilityT{id: $id, distance: $distance}'; + return 'AbilityT{id: ${id}, distance: ${distance}}'; } } @@ -709,7 +761,7 @@ class StructOfStructs { @override String toString() { - return 'StructOfStructs{a: $a, b: $b, c: $c}'; + return 'StructOfStructs{a: ${a}, b: ${b}, c: ${c}}'; } StructOfStructsT unpack() => StructOfStructsT( @@ -743,7 +795,7 @@ class StructOfStructsT implements fb.Packable { @override String toString() { - return 'StructOfStructsT{a: $a, b: $b, c: $c}'; + return 'StructOfStructsT{a: ${a}, b: ${b}, c: ${c}}'; } } @@ -803,6 +855,94 @@ class StructOfStructsObjectBuilder extends fb.ObjectBuilder { return fbBuilder.buffer; } } +class StructOfStructsOfStructs { + StructOfStructsOfStructs._(this._bc, this._bcOffset); + + static const fb.Reader reader = _StructOfStructsOfStructsReader(); + + final fb.BufferContext _bc; + final int _bcOffset; + + StructOfStructs get a => StructOfStructs.reader.read(_bc, _bcOffset + 0); + + @override + String toString() { + return 'StructOfStructsOfStructs{a: ${a}}'; + } + + StructOfStructsOfStructsT unpack() => StructOfStructsOfStructsT( + a: a.unpack()); + + static int pack(fb.Builder fbBuilder, StructOfStructsOfStructsT? object) { + if (object == null) return 0; + return object.pack(fbBuilder); + } +} + +class StructOfStructsOfStructsT implements fb.Packable { + StructOfStructsT a; + + StructOfStructsOfStructsT({ + required this.a}); + + @override + int pack(fb.Builder fbBuilder) { + a.pack(fbBuilder); + return fbBuilder.offset; + } + + @override + String toString() { + return 'StructOfStructsOfStructsT{a: ${a}}'; + } +} + +class _StructOfStructsOfStructsReader extends fb.StructReader { + const _StructOfStructsOfStructsReader(); + + @override + int get size => 20; + + @override + StructOfStructsOfStructs createObject(fb.BufferContext bc, int offset) => + StructOfStructsOfStructs._(bc, offset); +} + +class StructOfStructsOfStructsBuilder { + StructOfStructsOfStructsBuilder(this.fbBuilder); + + final fb.Builder fbBuilder; + + int finish(fb.StructBuilder a) { + a(); + return fbBuilder.offset; + } + +} + +class StructOfStructsOfStructsObjectBuilder extends fb.ObjectBuilder { + final StructOfStructsObjectBuilder _a; + + StructOfStructsOfStructsObjectBuilder({ + required StructOfStructsObjectBuilder a, + }) + : _a = a; + + /// Finish building, and store into the [fbBuilder]. + @override + int finish(fb.Builder fbBuilder) { + _a.finish(fbBuilder); + 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 Stat { Stat._(this._bc, this._bcOffset); factory Stat(List bytes) { @@ -821,7 +961,7 @@ class Stat { @override String toString() { - return 'Stat{id: $id, val: $val, count: $count}'; + return 'Stat{id: ${id}, val: ${val}, count: ${count}}'; } StatT unpack() => StatT( @@ -858,7 +998,7 @@ class StatT implements fb.Packable { @override String toString() { - return 'StatT{id: $id, val: $val, count: $count}'; + return 'StatT{id: ${id}, val: ${val}, count: ${count}}'; } } @@ -947,7 +1087,7 @@ class Referrable { @override String toString() { - return 'Referrable{id: $id}'; + return 'Referrable{id: ${id}}'; } ReferrableT unpack() => ReferrableT( @@ -974,7 +1114,7 @@ class ReferrableT implements fb.Packable { @override String toString() { - return 'ReferrableT{id: $id}'; + return 'ReferrableT{id: ${id}}'; } } @@ -1115,10 +1255,13 @@ class Monster { Race get signedEnum => Race.fromValue(const fb.Int8Reader().vTableGet(_bc, _bcOffset, 100, -1)); List? get testrequirednestedflatbuffer => const fb.Uint8ListReader().vTableGetNullable(_bc, _bcOffset, 102); List? get scalarKeySortedTables => const fb.ListReader(Stat.reader).vTableGetNullable(_bc, _bcOffset, 104); + 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)); @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}'; + 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}}'; } MonsterT unpack() => MonsterT( @@ -1171,7 +1314,10 @@ class Monster { vectorOfEnums: const fb.ListReader(Color.reader, lazy: false).vTableGetNullable(_bc, _bcOffset, 98), signedEnum: signedEnum, testrequirednestedflatbuffer: const fb.Uint8ListReader(lazy: false).vTableGetNullable(_bc, _bcOffset, 102), - scalarKeySortedTables: scalarKeySortedTables?.map((e) => e.unpack()).toList()); + scalarKeySortedTables: scalarKeySortedTables?.map((e) => e.unpack()).toList(), + nativeInline: nativeInline?.unpack(), + longEnumNonEnumDefault: longEnumNonEnumDefault, + longEnumNormalDefault: longEnumNormalDefault); static int pack(fb.Builder fbBuilder, MonsterT? object) { if (object == null) return 0; @@ -1233,6 +1379,9 @@ class MonsterT implements fb.Packable { Race signedEnum; List? testrequirednestedflatbuffer; List? scalarKeySortedTables; + TestT? nativeInline; + LongEnum longEnumNonEnumDefault; + LongEnum longEnumNormalDefault; MonsterT({ this.pos, @@ -1284,7 +1433,10 @@ class MonsterT implements fb.Packable { this.vectorOfEnums, this.signedEnum = Race.None, this.testrequirednestedflatbuffer, - this.scalarKeySortedTables}); + this.scalarKeySortedTables, + this.nativeInline, + this.longEnumNonEnumDefault = const LongEnum._(0), + this.longEnumNormalDefault = LongEnum.LongOne}); @override int pack(fb.Builder fbBuilder) { @@ -1345,7 +1497,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(50); + fbBuilder.startTable(54); if (pos != null) { fbBuilder.addStruct(0, pos!.pack(fbBuilder)); } @@ -1398,12 +1550,17 @@ class MonsterT implements fb.Packable { fbBuilder.addInt8(48, signedEnum.value); fbBuilder.addOffset(49, testrequirednestedflatbufferOffset); fbBuilder.addOffset(50, scalarKeySortedTablesOffset); + if (nativeInline != null) { + fbBuilder.addStruct(51, nativeInline!.pack(fbBuilder)); + } + fbBuilder.addUint64(52, longEnumNonEnumDefault.value); + fbBuilder.addUint64(53, longEnumNormalDefault.value); 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}'; + 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}}'; } } @@ -1421,7 +1578,7 @@ class MonsterBuilder { final fb.Builder fbBuilder; void begin() { - fbBuilder.startTable(50); + fbBuilder.startTable(54); } int addPos(int offset) { @@ -1624,6 +1781,18 @@ class MonsterBuilder { fbBuilder.addOffset(50, offset); return fbBuilder.offset; } + int addNativeInline(int offset) { + fbBuilder.addStruct(51, offset); + return fbBuilder.offset; + } + int addLongEnumNonEnumDefault(LongEnum? longEnumNonEnumDefault) { + fbBuilder.addUint64(52, longEnumNonEnumDefault?.value); + return fbBuilder.offset; + } + int addLongEnumNormalDefault(LongEnum? longEnumNormalDefault) { + fbBuilder.addUint64(53, longEnumNormalDefault?.value); + return fbBuilder.offset; + } int finish() { return fbBuilder.endTable(); @@ -1681,6 +1850,9 @@ class MonsterObjectBuilder extends fb.ObjectBuilder { final Race? _signedEnum; final List? _testrequirednestedflatbuffer; final List? _scalarKeySortedTables; + final TestObjectBuilder? _nativeInline; + final LongEnum? _longEnumNonEnumDefault; + final LongEnum? _longEnumNormalDefault; MonsterObjectBuilder({ Vec3ObjectBuilder? pos, @@ -1733,6 +1905,9 @@ class MonsterObjectBuilder extends fb.ObjectBuilder { Race? signedEnum, List? testrequirednestedflatbuffer, List? scalarKeySortedTables, + TestObjectBuilder? nativeInline, + LongEnum? longEnumNonEnumDefault, + LongEnum? longEnumNormalDefault, }) : _pos = pos, _mana = mana, @@ -1783,7 +1958,10 @@ class MonsterObjectBuilder extends fb.ObjectBuilder { _vectorOfEnums = vectorOfEnums, _signedEnum = signedEnum, _testrequirednestedflatbuffer = testrequirednestedflatbuffer, - _scalarKeySortedTables = scalarKeySortedTables; + _scalarKeySortedTables = scalarKeySortedTables, + _nativeInline = nativeInline, + _longEnumNonEnumDefault = longEnumNonEnumDefault, + _longEnumNormalDefault = longEnumNormalDefault; /// Finish building, and store into the [fbBuilder]. @override @@ -1836,7 +2014,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(50); + fbBuilder.startTable(54); if (_pos != null) { fbBuilder.addStruct(0, _pos!.finish(fbBuilder)); } @@ -1889,6 +2067,11 @@ class MonsterObjectBuilder extends fb.ObjectBuilder { fbBuilder.addInt8(48, _signedEnum?.value); fbBuilder.addOffset(49, testrequirednestedflatbufferOffset); fbBuilder.addOffset(50, scalarKeySortedTablesOffset); + if (_nativeInline != null) { + fbBuilder.addStruct(51, _nativeInline!.finish(fbBuilder)); + } + fbBuilder.addUint64(52, _longEnumNonEnumDefault?.value); + fbBuilder.addUint64(53, _longEnumNormalDefault?.value); return fbBuilder.endTable(); } @@ -1927,7 +2110,7 @@ class TypeAliases { @override String toString() { - return 'TypeAliases{i8: $i8, u8: $u8, i16: $i16, u16: $u16, i32: $i32, u32: $u32, i64: $i64, u64: $u64, f32: $f32, f64: $f64, v8: $v8, vf64: $vf64}'; + return 'TypeAliases{i8: ${i8}, u8: ${u8}, i16: ${i16}, u16: ${u16}, i32: ${i32}, u32: ${u32}, i64: ${i64}, u64: ${u64}, f32: ${f32}, f64: ${f64}, v8: ${v8}, vf64: ${vf64}}'; } TypeAliasesT unpack() => TypeAliasesT( @@ -2002,7 +2185,7 @@ class TypeAliasesT implements fb.Packable { @override String toString() { - return 'TypeAliasesT{i8: $i8, u8: $u8, i16: $i16, u16: $u16, i32: $i32, u32: $u32, i64: $i64, u64: $u64, f32: $f32, f64: $f64, v8: $v8, vf64: $vf64}'; + return 'TypeAliasesT{i8: ${i8}, u8: ${u8}, i16: ${i16}, u16: ${u16}, i32: ${i32}, u32: ${u32}, i64: ${i64}, u64: ${u64}, f32: ${f32}, f64: ${f64}, v8: ${v8}, vf64: ${vf64}}'; } } diff --git a/dart/test/monsterdata_test.mon b/dart/test/monsterdata_test.mon index cd52947bd059b8f6c9d0b755694196a91c69db39..da0ed8698fcafc71115525dc6fe40fead48515d1 100644 GIT binary patch delta 182 zcmcb>a)Twff`Ng-*WWJ~NHOFvOkv;v(rgSmK+*t+Sr|+hEEsHnEC(QFU|?l%Venum zV5ng5VF+MoVCY~70gHo(2q2DONMJ~rm?%22fDMRPGk`|sOsrIQ2gxsCWMG&A#5zDM s0K|8IVn=}3@nq#)5H4KO*ayNZfMOj$`~ZkeplU(xVPs(1c)ySl0DTT2aR2}S delta 179 zcmcb?a)BkZf`Ng-*WWJ~NC80>Lk|N7kY;1h0FpXD%)(&6V8UPlWZ3{Q0|P6A1A_}g z215aZ2ZIko1w#Wv09YJEgaB~_LkvU0#6;nV1uPK6%D|AqkTtPV-F^Wh1H%L$)&OE2 oAie=qegKFaPgdRq;ld@2eIUF9DAoeRcYxRcsut*+jn4}i0pismX8-^I