mirror of
https://github.com/google/flatbuffers.git
synced 2026-07-11 23:44:02 +00:00
Compare commits
122 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1703662285 | |||
| 991b39edbe | |||
| 81799203f1 | |||
| 62e4d2e5b2 | |||
| 40758674b1 | |||
| 4e75867bd2 | |||
| b17d59b18c | |||
| b23493a7d2 | |||
| b50b6be60a | |||
| 7bf83f5ea0 | |||
| ca6381bcc8 | |||
| 3b8644d32c | |||
| 641fbe4658 | |||
| 5638a6a900 | |||
| c2668fc0e2 | |||
| b5802b57f2 | |||
| 06f2a3dce9 | |||
| 75af533e95 | |||
| c95cf661af | |||
| 920f3827a0 | |||
| 81724e5b20 | |||
| 4d6a7aa8b7 | |||
| e61b00359b | |||
| 74b5195089 | |||
| 07d9485146 | |||
| 82da3da3f6 | |||
| a809a2d3f7 | |||
| af9ceabeef | |||
| 3b2eb77595 | |||
| 6420fa5c88 | |||
| 01589630ba | |||
| e0d68bdda2 | |||
| e43a80c322 | |||
| 449d5649d6 | |||
| 96d438df47 | |||
| 4e396d47bc | |||
| b47ba1d5ff | |||
| a078130c87 | |||
| 9ed76559df | |||
| 9927747d4e | |||
| 52d1b77941 | |||
| 40aa964057 | |||
| e1a2f688e0 | |||
| c0797b22ae | |||
| 97ee210826 | |||
| 3be296ec8a | |||
| acf39ff056 | |||
| 0e79e56427 | |||
| aadc4cb8be | |||
| b5ebd3fd78 | |||
| 11394575bc | |||
| 5b7b36e8be | |||
| c0230d839b | |||
| a8d49f2972 | |||
| 416c6020eb | |||
| 6d95867a8f | |||
| 2eaf790638 | |||
| 3b2ced0131 | |||
| 00af4e23b3 | |||
| 7e00b754f0 | |||
| cf89d1e756 | |||
| ad6054c600 | |||
| c3a01c7228 | |||
| 533f75d91b | |||
| fcab80f1bb | |||
| 5d2d0b92b1 | |||
| ae6662374d | |||
| 7b6c9f4a3c | |||
| 5a42b2c76c | |||
| 8f625561d0 | |||
| 9d2c04d629 | |||
| e000458bb1 | |||
| 60975d6f7e | |||
| 1cba8b2b49 | |||
| eead6c6219 | |||
| bb9b9dad5f | |||
| ade9e19be0 | |||
| eb1abb51ea | |||
| 1fa6091000 | |||
| 634c2ee7e3 | |||
| 6f895f54c2 | |||
| 41d6903294 | |||
| 7b038e3277 | |||
| 74756e5d1b | |||
| 879622fc57 | |||
| 83e7a98f69 | |||
| f20b0a45b3 | |||
| 207708efef | |||
| 225578a8b3 | |||
| 459e8acc37 | |||
| 8aa8b9139e | |||
| 001adf782d | |||
| dbc58ab77c | |||
| 2facfeec7e | |||
| 4de2814c7b | |||
| 37b1acdaff | |||
| a22434e2a1 | |||
| 214cc94681 | |||
| a4ff275d9b | |||
| 15f32c6907 | |||
| 051afd8825 | |||
| 728c033ad6 | |||
| 4c514483d8 | |||
| c2d9c20803 | |||
| e34ae4c6b6 | |||
| e54536127c | |||
| 49d9f941c0 | |||
| cefc21c1f9 | |||
| 3e64fa7246 | |||
| b15f3c57ea | |||
| ff802c6802 | |||
| b401957d5f | |||
| 8c8151f8f9 | |||
| ebb7c203d3 | |||
| 203241ed32 | |||
| ac485609c4 | |||
| de5b85aa66 | |||
| de3df2d88b | |||
| 043a24f2e4 | |||
| 5a48b0d7d6 | |||
| ce307556fb | |||
| cb616e27cb |
+347
@@ -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
|
||||||
|
"
|
||||||
@@ -3,7 +3,7 @@ Thank you for submitting a PR!
|
|||||||
Please delete this standard text once you've created your own description.
|
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
|
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`),
|
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.
|
requires Python3. This allows us to better see the effect of the PR.
|
||||||
|
|
||||||
|
|||||||
+98
-56
@@ -27,7 +27,7 @@ jobs:
|
|||||||
cxx: [g++-10, clang++-12]
|
cxx: [g++-10, clang++-12]
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: cmake
|
- 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 .
|
||||||
- name: build
|
- name: build
|
||||||
@@ -63,6 +63,16 @@ jobs:
|
|||||||
id: hash-gcc
|
id: hash-gcc
|
||||||
run: echo "::set-output name=hashes::$(sha256sum Linux.flatc.binary.${{ matrix.cxx }}.zip | base64 -w0)"
|
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:
|
build-linux-cpp-std:
|
||||||
name: Build Linux C++
|
name: Build Linux C++
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -76,7 +86,7 @@ jobs:
|
|||||||
- cxx: g++-10
|
- cxx: g++-10
|
||||||
std: 23
|
std: 23
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: cmake
|
- name: cmake
|
||||||
run: >
|
run: >
|
||||||
CXX=${{ matrix.cxx }} cmake -G "Unix Makefiles"
|
CXX=${{ matrix.cxx }} cmake -G "Unix Makefiles"
|
||||||
@@ -99,7 +109,7 @@ jobs:
|
|||||||
std: [11, 14, 17, 20, 23]
|
std: [11, 14, 17, 20, 23]
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: Add msbuild to PATH
|
- name: Add msbuild to PATH
|
||||||
uses: microsoft/setup-msbuild@v1.1
|
uses: microsoft/setup-msbuild@v1.1
|
||||||
- name: cmake
|
- name: cmake
|
||||||
@@ -124,7 +134,7 @@ jobs:
|
|||||||
name: Build Windows 2019
|
name: Build Windows 2019
|
||||||
runs-on: windows-2019
|
runs-on: windows-2019
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: Add msbuild to PATH
|
- name: Add msbuild to PATH
|
||||||
uses: microsoft/setup-msbuild@v1.1
|
uses: microsoft/setup-msbuild@v1.1
|
||||||
- name: cmake
|
- name: cmake
|
||||||
@@ -159,7 +169,7 @@ jobs:
|
|||||||
name: Build Windows 2017
|
name: Build Windows 2017
|
||||||
runs-on: windows-2019
|
runs-on: windows-2019
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: Add msbuild to PATH
|
- name: Add msbuild to PATH
|
||||||
uses: microsoft/setup-msbuild@v1.1
|
uses: microsoft/setup-msbuild@v1.1
|
||||||
- name: cmake
|
- name: cmake
|
||||||
@@ -173,7 +183,7 @@ jobs:
|
|||||||
name: Build Windows 2015
|
name: Build Windows 2015
|
||||||
runs-on: windows-2019
|
runs-on: windows-2019
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: Add msbuild to PATH
|
- name: Add msbuild to PATH
|
||||||
uses: microsoft/setup-msbuild@v1.1
|
uses: microsoft/setup-msbuild@v1.1
|
||||||
- name: cmake
|
- name: cmake
|
||||||
@@ -195,9 +205,9 @@ jobs:
|
|||||||
#'-p:EnableSpanT=true,UnsafeByteBuffer=true'
|
#'-p:EnableSpanT=true,UnsafeByteBuffer=true'
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: Setup .NET Core SDK
|
- name: Setup .NET Core SDK
|
||||||
uses: actions/setup-dotnet@v1.9.0
|
uses: actions/setup-dotnet@v3
|
||||||
with:
|
with:
|
||||||
dotnet-version: '3.1.x'
|
dotnet-version: '3.1.x'
|
||||||
- name: Build
|
- name: Build
|
||||||
@@ -219,34 +229,33 @@ jobs:
|
|||||||
name: Build Mac (for Intel)
|
name: Build Mac (for Intel)
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: cmake
|
- 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_STRICT_MODE=ON .
|
||||||
- name: build
|
- 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
|
||||||
run: xcodebuild -toolchain clang -configuration Release -target flattests SYMROOT=$(PWD)/_build
|
|
||||||
- name: check that the binary is x86_64
|
- name: check that the binary is x86_64
|
||||||
run: |
|
run: |
|
||||||
info=$(file _build/Release/flatc)
|
info=$(file Release/flatc)
|
||||||
echo $info
|
echo $info
|
||||||
echo $info | grep "Mach-O 64-bit executable x86_64"
|
echo $info | grep "Mach-O 64-bit executable x86_64"
|
||||||
- name: test
|
- name: test
|
||||||
run: _build/Release/flattests
|
run: Release/flattests
|
||||||
- name: make flatc executable
|
- name: make flatc executable
|
||||||
run: |
|
run: |
|
||||||
chmod +x _build/Release/flatc
|
chmod +x Release/flatc
|
||||||
./_build/Release/flatc --version
|
Release/flatc --version
|
||||||
- name: flatc tests
|
- 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
|
- name: upload build artifacts
|
||||||
uses: actions/upload-artifact@v1
|
uses: actions/upload-artifact@v1
|
||||||
with:
|
with:
|
||||||
name: Mac flatc binary
|
name: Mac flatc binary
|
||||||
path: _build/Release/flatc
|
path: Release/flatc
|
||||||
# Below if only for release.
|
# Below if only for release.
|
||||||
- name: Zip file
|
- name: Zip file
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
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
|
- name: Release binary
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
@@ -265,32 +274,31 @@ jobs:
|
|||||||
name: Build Mac (universal build)
|
name: Build Mac (universal build)
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: cmake
|
- 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_STRICT_MODE=ON .
|
||||||
- name: build
|
- 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
|
||||||
run: xcodebuild -toolchain clang -configuration Release -target flattests SYMROOT=$(PWD)/_build
|
|
||||||
- name: check that the binary is "universal"
|
- name: check that the binary is "universal"
|
||||||
run: |
|
run: |
|
||||||
info=$(file _build/Release/flatc)
|
info=$(file Release/flatc)
|
||||||
echo $info
|
echo $info
|
||||||
echo $info | grep "Mach-O universal binary with 2 architectures"
|
echo $info | grep "Mach-O universal binary with 2 architectures"
|
||||||
- name: test
|
- name: test
|
||||||
run: _build/Release/flattests
|
run: Release/flattests
|
||||||
- name: make flatc executable
|
- name: make flatc executable
|
||||||
run: |
|
run: |
|
||||||
chmod +x _build/Release/flatc
|
chmod +x Release/flatc
|
||||||
./_build/Release/flatc --version
|
Release/flatc --version
|
||||||
- name: upload build artifacts
|
- name: upload build artifacts
|
||||||
uses: actions/upload-artifact@v1
|
uses: actions/upload-artifact@v1
|
||||||
with:
|
with:
|
||||||
name: Mac flatc binary
|
name: Mac flatc binary
|
||||||
path: _build/Release/flatc
|
path: Release/flatc
|
||||||
# Below if only for release.
|
# Below if only for release.
|
||||||
- name: Zip file
|
- name: Zip file
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
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
|
- name: Release binary
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
@@ -305,11 +313,12 @@ jobs:
|
|||||||
name: Build Android (on Linux)
|
name: Build Android (on Linux)
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: set up JDK 1.8
|
- name: set up Java
|
||||||
uses: actions/setup-java@v1
|
uses: actions/setup-java@v3
|
||||||
with:
|
with:
|
||||||
java-version: 1.8
|
distribution: 'temurin'
|
||||||
|
java-version: '11'
|
||||||
- name: set up flatc
|
- name: set up flatc
|
||||||
run: |
|
run: |
|
||||||
cmake -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF -DFLATBUFFERS_STRICT_MODE=ON .
|
cmake -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF -DFLATBUFFERS_STRICT_MODE=ON .
|
||||||
@@ -326,7 +335,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
cxx: [g++-10, clang++-12]
|
cxx: [g++-10, clang++-12]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: cmake
|
- name: cmake
|
||||||
run: CXX=${{ matrix.cxx }} cmake -G "Unix Makefiles" -DFLATBUFFERS_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_STRICT_MODE=ON . && make -j
|
run: CXX=${{ matrix.cxx }} cmake -G "Unix Makefiles" -DFLATBUFFERS_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_STRICT_MODE=ON . && make -j
|
||||||
- name: Generate
|
- name: Generate
|
||||||
@@ -334,6 +343,22 @@ jobs:
|
|||||||
- name: Generate gRPC
|
- name: Generate gRPC
|
||||||
run: scripts/check-grpc-generated-code.py
|
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:
|
build-benchmarks:
|
||||||
name: Build Benchmarks (on Linux)
|
name: Build Benchmarks (on Linux)
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -341,7 +366,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
cxx: [g++-10]
|
cxx: [g++-10]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: cmake
|
- 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
|
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
|
- name: Run benchmarks
|
||||||
@@ -356,7 +381,7 @@ jobs:
|
|||||||
name: Build Java
|
name: Build Java
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: test
|
- name: test
|
||||||
working-directory: java
|
working-directory: java
|
||||||
run: mvn test
|
run: mvn test
|
||||||
@@ -366,11 +391,11 @@ jobs:
|
|||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
- uses: gradle/wrapper-validation-action@v1
|
- uses: gradle/wrapper-validation-action@v1.0.5
|
||||||
- uses: actions/setup-java@v2
|
- uses: actions/setup-java@v3
|
||||||
with:
|
with:
|
||||||
distribution: 'adopt-hotspot'
|
distribution: 'temurin'
|
||||||
java-version: '11'
|
java-version: '11'
|
||||||
- name: Build
|
- name: Build
|
||||||
working-directory: kotlin
|
working-directory: kotlin
|
||||||
@@ -381,16 +406,16 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
- uses: actions/setup-java@v2
|
- uses: actions/setup-java@v3
|
||||||
with:
|
with:
|
||||||
distribution: 'adopt-hotspot'
|
distribution: 'temurin'
|
||||||
java-version: '11'
|
java-version: '11'
|
||||||
- uses: gradle/wrapper-validation-action@v1
|
- uses: gradle/wrapper-validation-action@v1.0.5
|
||||||
- name: Build
|
- name: Build
|
||||||
working-directory: kotlin
|
working-directory: kotlin
|
||||||
# we are using docker's version of gradle
|
# we are using docker's version of gradle
|
||||||
# so no need for wrapper validadation or user
|
# so no need for wrapper validation or user
|
||||||
# gradlew
|
# gradlew
|
||||||
run: gradle jvmMainClasses jvmTest jsTest jsBrowserTest
|
run: gradle jvmMainClasses jvmTest jsTest jsBrowserTest
|
||||||
|
|
||||||
@@ -398,7 +423,7 @@ jobs:
|
|||||||
name: Build Rust
|
name: Build Rust
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: test
|
- name: test
|
||||||
working-directory: tests
|
working-directory: tests
|
||||||
run: bash RustTest.sh
|
run: bash RustTest.sh
|
||||||
@@ -407,7 +432,7 @@ jobs:
|
|||||||
name: Build Python
|
name: Build Python
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: test
|
- name: test
|
||||||
working-directory: tests
|
working-directory: tests
|
||||||
run: bash PythonTest.sh
|
run: bash PythonTest.sh
|
||||||
@@ -416,7 +441,7 @@ jobs:
|
|||||||
name: Build Go
|
name: Build Go
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: flatc
|
- name: flatc
|
||||||
# FIXME: make test script not rely on 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
|
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
|
||||||
@@ -424,14 +449,30 @@ jobs:
|
|||||||
working-directory: tests
|
working-directory: tests
|
||||||
run: bash GoTest.sh
|
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:
|
build-swift:
|
||||||
name: Build Swift
|
name: Build Swift
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: test
|
- name: test
|
||||||
working-directory: tests/swift/tests
|
working-directory: tests/swift/tests
|
||||||
run: sh SwiftTest.sh
|
run: |
|
||||||
|
swift build --build-tests
|
||||||
|
swift test
|
||||||
|
|
||||||
build-swift-wasm:
|
build-swift-wasm:
|
||||||
name: Build Swift Wasm
|
name: Build Swift Wasm
|
||||||
@@ -439,9 +480,9 @@ jobs:
|
|||||||
container:
|
container:
|
||||||
image: ghcr.io/swiftwasm/carton:0.15.3
|
image: ghcr.io/swiftwasm/carton:0.15.3
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: Setup Wasmer
|
- name: Setup Wasmer
|
||||||
uses: wasmerio/setup-wasmer@v1
|
uses: wasmerio/setup-wasmer@v2
|
||||||
- name: Test
|
- name: Test
|
||||||
working-directory: tests/swift/Wasm.tests
|
working-directory: tests/swift/Wasm.tests
|
||||||
run: carton test
|
run: carton test
|
||||||
@@ -450,7 +491,7 @@ jobs:
|
|||||||
name: Build TS
|
name: Build TS
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: flatc
|
- name: flatc
|
||||||
# FIXME: make test script not rely on 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
|
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
|
||||||
@@ -466,7 +507,7 @@ jobs:
|
|||||||
name: Build Dart
|
name: Build Dart
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- uses: dart-lang/setup-dart@v1
|
- uses: dart-lang/setup-dart@v1
|
||||||
with:
|
with:
|
||||||
sdk: stable
|
sdk: stable
|
||||||
@@ -481,7 +522,7 @@ jobs:
|
|||||||
name: Build Nim
|
name: Build Nim
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: flatc
|
- name: flatc
|
||||||
# FIXME: make test script not rely on 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
|
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
|
||||||
@@ -524,7 +565,8 @@ jobs:
|
|||||||
actions: read # To read the workflow path.
|
actions: read # To read the workflow path.
|
||||||
id-token: write # To sign the provenance.
|
id-token: write # To sign the provenance.
|
||||||
contents: write # To add assets to a release.
|
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:
|
with:
|
||||||
base64-subjects: "${{ needs.release-digests.outputs.digests }}"
|
base64-subjects: "${{ needs.release-digests.outputs.digests }}"
|
||||||
upload-assets: true # Optional: Upload to a new release
|
upload-assets: true # Optional: Upload to a new release
|
||||||
|
compile-generator: true # Workaround for https://github.com/slsa-framework/slsa-github-generator/issues/1163
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
@@ -0,0 +1,106 @@
|
|||||||
|
name: Release
|
||||||
|
permissions: read-all
|
||||||
|
|
||||||
|
on:
|
||||||
|
# For manual tests.
|
||||||
|
workflow_dispatch:
|
||||||
|
release:
|
||||||
|
types: [created]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
publish-npm:
|
||||||
|
name: Publish NPM
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: '16.x'
|
||||||
|
registry-url: 'https://registry.npmjs.org'
|
||||||
|
|
||||||
|
- run: npm publish
|
||||||
|
env:
|
||||||
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
|
|
||||||
|
publish-pypi:
|
||||||
|
name: Publish PyPi
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: ./python
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: '3.10'
|
||||||
|
|
||||||
|
- name: Install Dependencies
|
||||||
|
run: |
|
||||||
|
python3 -m pip install --upgrade pip
|
||||||
|
python3 -m pip install setuptools wheel twine
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
python3 setup.py sdist bdist_wheel
|
||||||
|
|
||||||
|
- name: Upload to PyPi
|
||||||
|
run: |
|
||||||
|
python3 -m twine upload dist/*
|
||||||
|
env:
|
||||||
|
TWINE_USERNAME: __token__
|
||||||
|
TWINE_PASSWORD: ${{ secrets.TWINE_TOKEN }}
|
||||||
|
|
||||||
|
publish-nuget:
|
||||||
|
name: Publish NuGet
|
||||||
|
runs-on: windows-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: ./net/flatbuffers
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: actions/setup-dotnet@v3
|
||||||
|
with:
|
||||||
|
dotnet-version: '6.0.x'
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
dotnet build Google.FlatBuffers.csproj -c Release
|
||||||
|
|
||||||
|
- name: Pack
|
||||||
|
run: |
|
||||||
|
dotnet pack Google.FlatBuffers.csproj -c Release
|
||||||
|
|
||||||
|
- name: Upload to NuGet
|
||||||
|
run: |
|
||||||
|
dotnet nuget push .\bin\Release\Google.FlatBuffers.*.nupkg -k ${{ secrets.NUGET_API_KEY }} -s https://api.nuget.org/v3/index.json
|
||||||
|
|
||||||
|
publish-maven:
|
||||||
|
name: Publish Maven
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: ./java
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up Maven Central Repository
|
||||||
|
uses: actions/setup-java@v3
|
||||||
|
with:
|
||||||
|
java-version: '11'
|
||||||
|
distribution: 'adopt'
|
||||||
|
cache: 'maven'
|
||||||
|
server-id: ossrh
|
||||||
|
server-username: OSSRH_USERNAME
|
||||||
|
server-password: OSSRH_PASSWORD
|
||||||
|
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
|
||||||
|
gpg-passphrase: MAVEN_GPG_PASSPHRASE # this needs to be an env var
|
||||||
|
|
||||||
|
- name: Publish Maven
|
||||||
|
run: mvn --batch-mode clean deploy
|
||||||
|
env:
|
||||||
|
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
|
||||||
|
OSSRH_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
|
||||||
|
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -149,4 +149,5 @@ flatbuffers.pc
|
|||||||
**/html/**
|
**/html/**
|
||||||
**/latex/**
|
**/latex/**
|
||||||
# https://cmake.org/cmake/help/latest/module/FetchContent.html#variable:FETCHCONTENT_BASE_DIR
|
# https://cmake.org/cmake/help/latest/module/FetchContent.html#variable:FETCHCONTENT_BASE_DIR
|
||||||
|
cmake-build-debug/
|
||||||
_deps/
|
_deps/
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ filegroup(
|
|||||||
"include/flatbuffers/bfbs_generator.h",
|
"include/flatbuffers/bfbs_generator.h",
|
||||||
"include/flatbuffers/buffer.h",
|
"include/flatbuffers/buffer.h",
|
||||||
"include/flatbuffers/buffer_ref.h",
|
"include/flatbuffers/buffer_ref.h",
|
||||||
|
"include/flatbuffers/code_generator.h",
|
||||||
"include/flatbuffers/code_generators.h",
|
"include/flatbuffers/code_generators.h",
|
||||||
"include/flatbuffers/default_allocator.h",
|
"include/flatbuffers/default_allocator.h",
|
||||||
"include/flatbuffers/detached_buffer.h",
|
"include/flatbuffers/detached_buffer.h",
|
||||||
|
|||||||
+29
-3
@@ -4,15 +4,41 @@ 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
|
new features that should be highlighted. Minor fixes or improvements are not
|
||||||
necessarily listed.
|
necessarily listed.
|
||||||
|
|
||||||
## 22.10.25 (Oct 25 2002)
|
## [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
|
||||||
|
[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)](https://github.com/google/flatbuffers/releases/tag/v22.10.25)
|
||||||
|
|
||||||
* Added Nim language support with generator and runtime libraries (#7534).
|
* 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).
|
* 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
|
* 20 Major releases in a row? Nope, we switched to a new
|
||||||
[versioning scheme](https://github.com/google/flatbuffers/wiki/Versioning)
|
[versioning scheme](https://github.com/google/flatbuffers/wiki/Versioning)
|
||||||
|
|||||||
@@ -438,14 +438,12 @@ endif()
|
|||||||
if(FLATBUFFERS_BUILD_SHAREDLIB)
|
if(FLATBUFFERS_BUILD_SHAREDLIB)
|
||||||
add_library(flatbuffers_shared SHARED ${FlatBuffers_Library_SRCS})
|
add_library(flatbuffers_shared SHARED ${FlatBuffers_Library_SRCS})
|
||||||
|
|
||||||
# Shared object version: "major.minor.micro"
|
# FlatBuffers use calendar-based versioning and do not provide any ABI
|
||||||
# - micro updated every release when there is no API/ABI changes
|
# stability guarantees. Therefore, always use the full version as SOVERSION
|
||||||
# - minor updated when there are additions in API/ABI
|
# in order to avoid breaking reverse dependencies on upgrades.
|
||||||
# - major (ABI number) updated when there are changes in ABI (or removals)
|
set(FlatBuffers_Library_SONAME_FULL "${PROJECT_VERSION}")
|
||||||
set(FlatBuffers_Library_SONAME_MAJOR ${VERSION_MAJOR})
|
|
||||||
set(FlatBuffers_Library_SONAME_FULL "${FlatBuffers_Library_SONAME_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
|
||||||
set_target_properties(flatbuffers_shared PROPERTIES OUTPUT_NAME flatbuffers
|
set_target_properties(flatbuffers_shared PROPERTIES OUTPUT_NAME flatbuffers
|
||||||
SOVERSION "${FlatBuffers_Library_SONAME_MAJOR}"
|
SOVERSION "${FlatBuffers_Library_SONAME_FULL}"
|
||||||
VERSION "${FlatBuffers_Library_SONAME_FULL}")
|
VERSION "${FlatBuffers_Library_SONAME_FULL}")
|
||||||
if(FLATBUFFERS_ENABLE_PCH)
|
if(FLATBUFFERS_ENABLE_PCH)
|
||||||
add_pch_to_target(flatbuffers_shared include/flatbuffers/pch/pch.h)
|
add_pch_to_target(flatbuffers_shared include/flatbuffers/pch/pch.h)
|
||||||
|
|||||||
+23
-21
@@ -1,37 +1,39 @@
|
|||||||
set(VERSION_MAJOR 22)
|
set(VERSION_MAJOR 23)
|
||||||
set(VERSION_MINOR 10)
|
set(VERSION_MINOR 1)
|
||||||
set(VERSION_PATCH 25)
|
set(VERSION_PATCH 20)
|
||||||
set(VERSION_COMMIT 0)
|
set(VERSION_COMMIT 0)
|
||||||
|
|
||||||
find_program(GIT git)
|
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
|
||||||
if(GIT AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
|
find_program(GIT git)
|
||||||
execute_process(
|
if(GIT)
|
||||||
|
execute_process(
|
||||||
COMMAND ${GIT} describe --tags
|
COMMAND ${GIT} describe --tags
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
OUTPUT_VARIABLE GIT_DESCRIBE_DIRTY
|
OUTPUT_VARIABLE GIT_DESCRIBE_DIRTY
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
RESULT_VARIABLE GIT_DESCRIBE_RESULT
|
RESULT_VARIABLE GIT_DESCRIBE_RESULT
|
||||||
)
|
)
|
||||||
|
|
||||||
if(GIT_DESCRIBE_RESULT EQUAL 0)
|
if(GIT_DESCRIBE_RESULT EQUAL 0)
|
||||||
# Test if the most recent Git tag matches the pattern "v<major>.<minor>.<patch>*"
|
# Test if the most recent Git tag matches the pattern "v<major>.<minor>.<patch>*"
|
||||||
if(GIT_DESCRIBE_DIRTY MATCHES "^v[0-9]+\\.[0-9]+\\.[0-9]+.*")
|
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]+)\\..*" "\\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]+).*" "\\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]+).*" "\\1" VERSION_PATCH "${GIT_DESCRIBE_DIRTY}")
|
||||||
string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+\\-([0-9]+).*" "\\1" VERSION_COMMIT "${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 the tag points to the commit, then only the tag is shown in "git describe"
|
||||||
if(VERSION_COMMIT STREQUAL GIT_DESCRIBE_DIRTY)
|
if(VERSION_COMMIT STREQUAL GIT_DESCRIBE_DIRTY)
|
||||||
set(VERSION_COMMIT 0)
|
set(VERSION_COMMIT 0)
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(WARNING "\"${GIT_DESCRIBE_DIRTY}\" does not match pattern v<major>.<minor>.<patch>-<commit>")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
message(WARNING "\"${GIT_DESCRIBE_DIRTY}\" does not match pattern v<major>.<minor>.<patch>-<commit>")
|
message(WARNING "git describe failed with exit code: ${GIT_DESCRIBE_RESULT}")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
message(WARNING "git describe failed with exit code: ${GIT_DESCRIBE_RESULT}")
|
message(WARNING "git is not found")
|
||||||
endif()
|
endif()
|
||||||
else()
|
|
||||||
message(WARNING "git is not found")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
message(STATUS "Proceeding with version: ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_COMMIT}")
|
message(STATUS "Proceeding with version: ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_COMMIT}")
|
||||||
|
|||||||
+20
-9
@@ -125,6 +125,13 @@ if(NOT DEFINED FLATBUFFERS_LOCALE_INDEPENDENT)
|
|||||||
endif()
|
endif()
|
||||||
add_definitions(-DFLATBUFFERS_LOCALE_INDEPENDENT=$<BOOL:${FLATBUFFERS_LOCALE_INDEPENDENT}>)
|
add_definitions(-DFLATBUFFERS_LOCALE_INDEPENDENT=$<BOOL:${FLATBUFFERS_LOCALE_INDEPENDENT}>)
|
||||||
|
|
||||||
|
if(NOT WIN32)
|
||||||
|
check_symbol_exists(realpath "stdlib.h" HAVE_REALPATH)
|
||||||
|
if(NOT HAVE_REALPATH)
|
||||||
|
add_definitions(-DFLATBUFFERS_NO_ABSOLUTE_PATH_RESOLUTION)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
set(FlatBuffers_Library_SRCS
|
set(FlatBuffers_Library_SRCS
|
||||||
include/flatbuffers/allocator.h
|
include/flatbuffers/allocator.h
|
||||||
include/flatbuffers/array.h
|
include/flatbuffers/array.h
|
||||||
@@ -134,6 +141,7 @@ set(FlatBuffers_Library_SRCS
|
|||||||
include/flatbuffers/buffer_ref.h
|
include/flatbuffers/buffer_ref.h
|
||||||
include/flatbuffers/default_allocator.h
|
include/flatbuffers/default_allocator.h
|
||||||
include/flatbuffers/detached_buffer.h
|
include/flatbuffers/detached_buffer.h
|
||||||
|
include/flatbuffers/code_generator.h
|
||||||
include/flatbuffers/flatbuffer_builder.h
|
include/flatbuffers/flatbuffer_builder.h
|
||||||
include/flatbuffers/flatbuffers.h
|
include/flatbuffers/flatbuffers.h
|
||||||
include/flatbuffers/flexbuffers.h
|
include/flatbuffers/flexbuffers.h
|
||||||
@@ -219,6 +227,7 @@ set(FlatBuffers_Tests_SRCS
|
|||||||
tests/flexbuffers_test.cpp
|
tests/flexbuffers_test.cpp
|
||||||
tests/fuzz_test.cpp
|
tests/fuzz_test.cpp
|
||||||
tests/json_test.cpp
|
tests/json_test.cpp
|
||||||
|
tests/key_field_test.cpp
|
||||||
tests/monster_test.cpp
|
tests/monster_test.cpp
|
||||||
tests/optional_scalars_test.cpp
|
tests/optional_scalars_test.cpp
|
||||||
tests/parser_test.cpp
|
tests/parser_test.cpp
|
||||||
@@ -257,6 +266,8 @@ set(FlatBuffers_Tests_SRCS
|
|||||||
${CMAKE_CURRENT_BINARY_DIR}/tests/native_inline_table_test_generated.h
|
${CMAKE_CURRENT_BINARY_DIR}/tests/native_inline_table_test_generated.h
|
||||||
# file generate by running compiler on tests/alignment_test.fbs
|
# file generate by running compiler on tests/alignment_test.fbs
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/tests/alignment_test_generated.h
|
${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
|
set(FlatBuffers_Tests_CPP17_SRCS
|
||||||
@@ -416,6 +427,7 @@ else()
|
|||||||
|
|
||||||
# This isn't working for some reason: $<$<CXX_COMPILER_ID:CLANG>:
|
# This isn't working for some reason: $<$<CXX_COMPILER_ID:CLANG>:
|
||||||
$<$<BOOL:${IS_CLANG}>:
|
$<$<BOOL:${IS_CLANG}>:
|
||||||
|
-Wnewline-eof
|
||||||
-Wno-unknown-warning-option
|
-Wno-unknown-warning-option
|
||||||
-Wmissing-declarations
|
-Wmissing-declarations
|
||||||
-Wzero-as-null-pointer-constant
|
-Wzero-as-null-pointer-constant
|
||||||
@@ -513,14 +525,12 @@ endif()
|
|||||||
if(FLATBUFFERS_BUILD_SHAREDLIB)
|
if(FLATBUFFERS_BUILD_SHAREDLIB)
|
||||||
add_library(flatbuffers_shared SHARED ${FlatBuffers_Library_SRCS})
|
add_library(flatbuffers_shared SHARED ${FlatBuffers_Library_SRCS})
|
||||||
target_link_libraries(flatbuffers_shared PRIVATE $<BUILD_INTERFACE:ProjectConfig>)
|
target_link_libraries(flatbuffers_shared PRIVATE $<BUILD_INTERFACE:ProjectConfig>)
|
||||||
# Shared object version: "major.minor.micro"
|
# FlatBuffers use calendar-based versioning and do not provide any ABI
|
||||||
# - micro updated every release when there is no API/ABI changes
|
# stability guarantees. Therefore, always use the full version as SOVERSION
|
||||||
# - minor updated when there are additions in API/ABI
|
# in order to avoid breaking reverse dependencies on upgrades.
|
||||||
# - major (ABI number) updated when there are changes in ABI (or removals)
|
set(FlatBuffers_Library_SONAME_FULL "${PROJECT_VERSION}")
|
||||||
set(FlatBuffers_Library_SONAME_MAJOR ${VERSION_MAJOR})
|
|
||||||
set(FlatBuffers_Library_SONAME_FULL "${FlatBuffers_Library_SONAME_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
|
||||||
set_target_properties(flatbuffers_shared PROPERTIES OUTPUT_NAME flatbuffers
|
set_target_properties(flatbuffers_shared PROPERTIES OUTPUT_NAME flatbuffers
|
||||||
SOVERSION "${FlatBuffers_Library_SONAME_MAJOR}"
|
SOVERSION "${FlatBuffers_Library_SONAME_FULL}"
|
||||||
VERSION "${FlatBuffers_Library_SONAME_FULL}")
|
VERSION "${FlatBuffers_Library_SONAME_FULL}")
|
||||||
if(FLATBUFFERS_ENABLE_PCH)
|
if(FLATBUFFERS_ENABLE_PCH)
|
||||||
add_pch_to_target(flatbuffers_shared include/flatbuffers/pch/pch.h)
|
add_pch_to_target(flatbuffers_shared include/flatbuffers/pch/pch.h)
|
||||||
@@ -578,7 +588,7 @@ function(compile_flatbuffers_schema_to_binary SRC_FBS)
|
|||||||
OUTPUT ${GEN_BINARY_SCHEMA}
|
OUTPUT ${GEN_BINARY_SCHEMA}
|
||||||
COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}"
|
COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}"
|
||||||
-b --schema --bfbs-comments --bfbs-builtins
|
-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"
|
-I "${CMAKE_CURRENT_SOURCE_DIR}/tests/include_test"
|
||||||
-o "${SRC_FBS_DIR}"
|
-o "${SRC_FBS_DIR}"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}"
|
||||||
@@ -622,7 +632,7 @@ if(FLATBUFFERS_BUILD_TESTS)
|
|||||||
compile_flatbuffers_schema_to_binary(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_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/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(tests/optional_scalars.fbs)
|
||||||
compile_flatbuffers_schema_to_cpp_opt(tests/native_type_test.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_cpp_opt(tests/arrays_test.fbs "--scoped-enums;--gen-compare")
|
||||||
@@ -630,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_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/native_inline_table_test.fbs "--gen-compare")
|
||||||
compile_flatbuffers_schema_to_cpp(tests/alignment_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)))
|
if(NOT (MSVC AND (MSVC_VERSION LESS 1900)))
|
||||||
compile_flatbuffers_schema_to_cpp(tests/monster_extra.fbs) # Test floating-point NAN/INF.
|
compile_flatbuffers_schema_to_cpp(tests/monster_extra.fbs) # Test floating-point NAN/INF.
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
Pod::Spec.new do |s|
|
Pod::Spec.new do |s|
|
||||||
s.name = 'FlatBuffers'
|
s.name = 'FlatBuffers'
|
||||||
s.version = '22.10.25'
|
s.version = '23.1.20'
|
||||||
s.summary = 'FlatBuffers: Memory Efficient Serialization Library'
|
s.summary = 'FlatBuffers: Memory Efficient Serialization Library'
|
||||||
|
|
||||||
s.description = "FlatBuffers is a cross platform serialization library architected for
|
s.description = "FlatBuffers is a cross platform serialization library architected for
|
||||||
|
|||||||
@@ -32,6 +32,6 @@ let package = Package(
|
|||||||
.target(
|
.target(
|
||||||
name: "FlatBuffers",
|
name: "FlatBuffers",
|
||||||
dependencies: [],
|
dependencies: [],
|
||||||
path: "swift/Sources")
|
path: "swift/Sources"),
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|||||||
@@ -33,10 +33,10 @@ swift_rules_extra_dependencies()
|
|||||||
|
|
||||||
http_archive(
|
http_archive(
|
||||||
name = "io_bazel_rules_go",
|
name = "io_bazel_rules_go",
|
||||||
sha256 = "16e9fca53ed6bd4ff4ad76facc9b7b651a89db1689a2877d6fd7b82aa824e366",
|
sha256 = "ae013bf35bd23234d1dea46b079f1e05ba74ac0321423830119d3e787ec73483",
|
||||||
urls = [
|
urls = [
|
||||||
"https://mirror.bazel.build/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.34.0/rules_go-v0.34.0.zip",
|
"https://github.com/bazelbuild/rules_go/releases/download/v0.36.0/rules_go-v0.36.0.zip",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.example.FlatBufferTest">
|
package="com.example.FlatBufferTest">
|
||||||
|
|
||||||
|
<uses-sdk android:minSdkVersion="14"/>
|
||||||
<uses-feature android:glEsVersion="0x00020000"></uses-feature>
|
<uses-feature android:glEsVersion="0x00020000"></uses-feature>
|
||||||
|
|
||||||
<!-- This .apk has no Java code itself, so set hasCode to false. -->
|
<!-- This .apk has no Java code itself, so set hasCode to false. -->
|
||||||
|
|||||||
@@ -2,9 +2,21 @@
|
|||||||
|
|
||||||
package com.fbs.app
|
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 kotlin.math.sign
|
||||||
import com.google.flatbuffers.*
|
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
class Animal : Table() {
|
class Animal : Table() {
|
||||||
@@ -36,7 +48,7 @@ class Animal : Table() {
|
|||||||
return if(o != 0) bb.getShort(o + bb_pos).toUShort() else 0u
|
return if(o != 0) bb.getShort(o + bb_pos).toUShort() else 0u
|
||||||
}
|
}
|
||||||
companion object {
|
companion object {
|
||||||
fun validateVersion() = Constants.FLATBUFFERS_22_10_25()
|
fun validateVersion() = Constants.FLATBUFFERS_23_1_20()
|
||||||
fun getRootAsAnimal(_bb: ByteBuffer): Animal = getRootAsAnimal(_bb, Animal())
|
fun getRootAsAnimal(_bb: ByteBuffer): Animal = getRootAsAnimal(_bb, Animal())
|
||||||
fun getRootAsAnimal(_bb: ByteBuffer, obj: Animal): Animal {
|
fun getRootAsAnimal(_bb: ByteBuffer, obj: Animal): Animal {
|
||||||
_bb.order(ByteOrder.LITTLE_ENDIAN)
|
_bb.order(ByteOrder.LITTLE_ENDIAN)
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ FetchContent_MakeAvailable(
|
|||||||
googlebenchmark
|
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_FB_BENCH_DIR ${CPP_BENCH_DIR}/flatbuffers)
|
||||||
set(CPP_RAW_BENCH_DIR ${CPP_BENCH_DIR}/raw)
|
set(CPP_RAW_BENCH_DIR ${CPP_BENCH_DIR}/raw)
|
||||||
set(CPP_BENCH_FBS ${CPP_FB_BENCH_DIR}/bench.fbs)
|
set(CPP_BENCH_FBS ${CPP_FB_BENCH_DIR}/bench.fbs)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ class BitWidthUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static BitWidth width(num value) {
|
static BitWidth width(num value) {
|
||||||
if (value.toInt() == value) {
|
if (value is int) {
|
||||||
var v = value.toInt().abs();
|
var v = value.toInt().abs();
|
||||||
if (v >> 7 == 0) return BitWidth.width8;
|
if (v >> 7 == 0) return BitWidth.width8;
|
||||||
if (v >> 15 == 0) return BitWidth.width16;
|
if (v >> 15 == 0) return BitWidth.width16;
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
name: flat_buffers
|
name: flat_buffers
|
||||||
version: 22.10.25
|
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.
|
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
|
homepage: https://github.com/google/flatbuffers
|
||||||
documentation: https://google.github.io/flatbuffers/index.html
|
documentation: https://google.github.io/flatbuffers/index.html
|
||||||
|
|||||||
@@ -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<int> bytes) {
|
||||||
|
final rootRef = fb.BufferContext.fromBytes(bytes);
|
||||||
|
return reader.read(rootRef, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const fb.Reader<Foo> 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<Foo> {
|
||||||
|
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<FooProperties> 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<FooProperties> {
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -87,7 +87,10 @@ class CheckOtherLangaugesData {
|
|||||||
'testrequirednestedflatbuffer: null, scalarKeySortedTables: null, '
|
'testrequirednestedflatbuffer: null, scalarKeySortedTables: null, '
|
||||||
'nativeInline: null, '
|
'nativeInline: null, '
|
||||||
'longEnumNonEnumDefault: LongEnum{value: 0}, '
|
'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}], '
|
'test4: [Test{a: 10, b: 20}, Test{a: 30, b: 40}], '
|
||||||
'testarrayofstring: [test1, test2], testarrayoftables: null, '
|
'testarrayofstring: [test1, test2], testarrayoftables: null, '
|
||||||
'enemy: Monster{pos: null, mana: 150, hp: 100, name: Fred, '
|
'enemy: Monster{pos: null, mana: 150, hp: 100, name: Fred, '
|
||||||
@@ -110,7 +113,10 @@ class CheckOtherLangaugesData {
|
|||||||
'testrequirednestedflatbuffer: null, scalarKeySortedTables: null, '
|
'testrequirednestedflatbuffer: null, scalarKeySortedTables: null, '
|
||||||
'nativeInline: null, '
|
'nativeInline: null, '
|
||||||
'longEnumNonEnumDefault: LongEnum{value: 0}, '
|
'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, '
|
'testnestedflatbuffer: null, testempty: null, testbool: true, '
|
||||||
'testhashs32Fnv1: -579221183, testhashu32Fnv1: 3715746113, '
|
'testhashs32Fnv1: -579221183, testhashu32Fnv1: 3715746113, '
|
||||||
'testhashs64Fnv1: 7930699090847568257, '
|
'testhashs64Fnv1: 7930699090847568257, '
|
||||||
@@ -137,7 +143,10 @@ class CheckOtherLangaugesData {
|
|||||||
'miss, val: 0, count: 0}, Stat{id: hit, val: 10, count: 1}], '
|
'miss, val: 0, count: 0}, Stat{id: hit, val: 10, count: 1}], '
|
||||||
'nativeInline: Test{a: 1, b: 2}, '
|
'nativeInline: Test{a: 1, b: 2}, '
|
||||||
'longEnumNonEnumDefault: LongEnum{value: 0}, '
|
'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}'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,6 +40,10 @@ void main() {
|
|||||||
flx.addInt(-1025);
|
flx.addInt(-1025);
|
||||||
expect(flx.finish(), [255, 251, 5, 2]);
|
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();
|
var flx = Builder();
|
||||||
flx.addDouble(0.1);
|
flx.addDouble(0.1);
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ void main() {
|
|||||||
// expect(FlxValue.fromBuffer(b([255, 255, 255, 255, 255, 255, 255, 255, 11, 8])).intValue, 18446744073709551615);
|
// expect(FlxValue.fromBuffer(b([255, 255, 255, 255, 255, 255, 255, 255, 11, 8])).intValue, 18446744073709551615);
|
||||||
});
|
});
|
||||||
test('double value', () {
|
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([0, 0, 144, 64, 14, 4])).doubleValue, 4.5);
|
||||||
expect(Reference.fromBuffer(b([205, 204, 204, 61, 14, 4])).doubleValue,
|
expect(Reference.fromBuffer(b([205, 204, 204, 61, 14, 4])).doubleValue,
|
||||||
closeTo(.1, .001));
|
closeTo(.1, .001));
|
||||||
|
|||||||
@@ -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<int> bytes) {
|
||||||
|
final rootRef = fb.BufferContext.fromBytes(bytes);
|
||||||
|
return reader.read(rootRef, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const fb.Reader<TableA> 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<TableA> {
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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<int, FromInclude> values = {
|
||||||
|
0: IncludeVal};
|
||||||
|
|
||||||
|
static const fb.Reader<FromInclude> reader = _FromIncludeReader();
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return 'FromInclude{value: $value}';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class _FromIncludeReader extends fb.Reader<FromInclude> {
|
||||||
|
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<Unused> 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<Unused> {
|
||||||
|
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<int> bytes) {
|
||||||
|
final rootRef = fb.BufferContext.fromBytes(bytes);
|
||||||
|
return reader.read(rootRef, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const fb.Reader<TableB> 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<TableB> {
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -278,3 +278,122 @@ class KeywordsInTableObjectBuilder extends fb.ObjectBuilder {
|
|||||||
return fbBuilder.buffer;
|
return fbBuilder.buffer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
class Table2 {
|
||||||
|
Table2._(this._bc, this._bcOffset);
|
||||||
|
factory Table2(List<int> bytes) {
|
||||||
|
final rootRef = fb.BufferContext.fromBytes(bytes);
|
||||||
|
return reader.read(rootRef, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const fb.Reader<Table2> 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<Table2> {
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -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<int, OptionsEnum> values = {
|
||||||
|
1: A,
|
||||||
|
2: B,
|
||||||
|
3: C};
|
||||||
|
|
||||||
|
static const fb.Reader<OptionsEnum> reader = _OptionsEnumReader();
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return 'OptionsEnum{value: $value}';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class _OptionsEnumReader extends fb.Reader<OptionsEnum> {
|
||||||
|
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<int> bytes) {
|
||||||
|
final rootRef = fb.BufferContext.fromBytes(bytes);
|
||||||
|
return reader.read(rootRef, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const fb.Reader<MyTable> reader = _MyTableReader();
|
||||||
|
|
||||||
|
final fb.BufferContext _bc;
|
||||||
|
final int _bcOffset;
|
||||||
|
|
||||||
|
List<OptionsEnum>? get options => const fb.ListReader<OptionsEnum>(OptionsEnum.reader).vTableGetNullable(_bc, _bcOffset, 4);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return 'MyTable{options: ${options}}';
|
||||||
|
}
|
||||||
|
|
||||||
|
MyTableT unpack() => MyTableT(
|
||||||
|
options: const fb.ListReader<OptionsEnum>(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<OptionsEnum>? 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<MyTable> {
|
||||||
|
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<OptionsEnum>? _options;
|
||||||
|
|
||||||
|
MyTableObjectBuilder({
|
||||||
|
List<OptionsEnum>? 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -31,6 +31,14 @@ enum Race:byte {
|
|||||||
Elf,
|
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 Any { Monster, TestSimpleTableWithEnum, MyGame.Example2.Monster }
|
||||||
|
|
||||||
union AnyUniqueAliases { M: Monster, TS: TestSimpleTableWithEnum, M2: MyGame.Example2.Monster }
|
union AnyUniqueAliases { M: Monster, TS: TestSimpleTableWithEnum, M2: MyGame.Example2.Monster }
|
||||||
@@ -62,6 +70,10 @@ struct StructOfStructs {
|
|||||||
c: Ability;
|
c: Ability;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct StructOfStructsOfStructs {
|
||||||
|
a: StructOfStructs;
|
||||||
|
}
|
||||||
|
|
||||||
table Stat {
|
table Stat {
|
||||||
id:string;
|
id:string;
|
||||||
val:long;
|
val:long;
|
||||||
@@ -124,6 +136,20 @@ table Monster {
|
|||||||
signed_enum:Race = None (id:48);
|
signed_enum:Race = None (id:48);
|
||||||
testrequirednestedflatbuffer:[ubyte] (id:49, nested_flatbuffer: "Monster");
|
testrequirednestedflatbuffer:[ubyte] (id:49, nested_flatbuffer: "Monster");
|
||||||
scalar_key_sorted_tables:[Stat] (id: 50);
|
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);
|
||||||
|
// 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 {
|
table TypeAliases {
|
||||||
|
|||||||
@@ -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_generated.dart' as my_game;
|
||||||
import './monster_test_my_game.example_generated.dart' as my_game_example;
|
import './monster_test_my_game.example_generated.dart' as my_game_example;
|
||||||
|
|
||||||
|
import './include_test1_generated.dart';
|
||||||
|
|
||||||
class Monster {
|
class Monster {
|
||||||
Monster._(this._bc, this._bcOffset);
|
Monster._(this._bc, this._bcOffset);
|
||||||
factory Monster(List<int> bytes) {
|
factory Monster(List<int> bytes) {
|
||||||
|
|||||||
@@ -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_generated.dart' as my_game;
|
||||||
import './monster_test_my_game.example2_generated.dart' as my_game_example2;
|
import './monster_test_my_game.example2_generated.dart' as my_game_example2;
|
||||||
|
|
||||||
|
import './include_test1_generated.dart';
|
||||||
|
|
||||||
/// Composite components of Monster color.
|
/// Composite components of Monster color.
|
||||||
class Color {
|
class Color {
|
||||||
final int value;
|
final int value;
|
||||||
@@ -17,7 +19,11 @@ class Color {
|
|||||||
factory Color.fromValue(int value) {
|
factory Color.fromValue(int value) {
|
||||||
final result = values[value];
|
final result = values[value];
|
||||||
if (result == null) {
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -66,7 +72,7 @@ class Race {
|
|||||||
factory Race.fromValue(int value) {
|
factory Race.fromValue(int value) {
|
||||||
final result = values[value];
|
final result = values[value];
|
||||||
if (result == null) {
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -107,6 +113,54 @@ class _RaceReader extends fb.Reader<Race> {
|
|||||||
Race.fromValue(const fb.Int8Reader().read(bc, offset));
|
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<int, LongEnum> values = {
|
||||||
|
2: LongOne,
|
||||||
|
4: LongTwo,
|
||||||
|
1099511627776: LongBig};
|
||||||
|
|
||||||
|
static const fb.Reader<LongEnum> reader = _LongEnumReader();
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return 'LongEnum{value: $value}';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class _LongEnumReader extends fb.Reader<LongEnum> {
|
||||||
|
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 {
|
class AnyTypeId {
|
||||||
final int value;
|
final int value;
|
||||||
const AnyTypeId._(this.value);
|
const AnyTypeId._(this.value);
|
||||||
@@ -114,7 +168,7 @@ class AnyTypeId {
|
|||||||
factory AnyTypeId.fromValue(int value) {
|
factory AnyTypeId.fromValue(int value) {
|
||||||
final result = values[value];
|
final result = values[value];
|
||||||
if (result == null) {
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -162,7 +216,7 @@ class AnyUniqueAliasesTypeId {
|
|||||||
factory AnyUniqueAliasesTypeId.fromValue(int value) {
|
factory AnyUniqueAliasesTypeId.fromValue(int value) {
|
||||||
final result = values[value];
|
final result = values[value];
|
||||||
if (result == null) {
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -210,7 +264,7 @@ class AnyAmbiguousAliasesTypeId {
|
|||||||
factory AnyAmbiguousAliasesTypeId.fromValue(int value) {
|
factory AnyAmbiguousAliasesTypeId.fromValue(int value) {
|
||||||
final result = values[value];
|
final result = values[value];
|
||||||
if (result == null) {
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -264,7 +318,7 @@ class Test {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'Test{a: $a, b: $b}';
|
return 'Test{a: ${a}, b: ${b}}';
|
||||||
}
|
}
|
||||||
|
|
||||||
TestT unpack() => TestT(
|
TestT unpack() => TestT(
|
||||||
@@ -295,7 +349,7 @@ class TestT implements fb.Packable {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'TestT{a: $a, b: $b}';
|
return 'TestT{a: ${a}, b: ${b}}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -368,7 +422,7 @@ class TestSimpleTableWithEnum {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'TestSimpleTableWithEnum{color: $color}';
|
return 'TestSimpleTableWithEnum{color: ${color}}';
|
||||||
}
|
}
|
||||||
|
|
||||||
TestSimpleTableWithEnumT unpack() => TestSimpleTableWithEnumT(
|
TestSimpleTableWithEnumT unpack() => TestSimpleTableWithEnumT(
|
||||||
@@ -395,7 +449,7 @@ class TestSimpleTableWithEnumT implements fb.Packable {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'TestSimpleTableWithEnumT{color: $color}';
|
return 'TestSimpleTableWithEnumT{color: ${color}}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -467,7 +521,7 @@ class Vec3 {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
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(
|
Vec3T unpack() => Vec3T(
|
||||||
@@ -516,7 +570,7 @@ class Vec3T implements fb.Packable {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
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 +664,7 @@ class Ability {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'Ability{id: $id, distance: $distance}';
|
return 'Ability{id: ${id}, distance: ${distance}}';
|
||||||
}
|
}
|
||||||
|
|
||||||
AbilityT unpack() => AbilityT(
|
AbilityT unpack() => AbilityT(
|
||||||
@@ -640,7 +694,7 @@ class AbilityT implements fb.Packable {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'AbilityT{id: $id, distance: $distance}';
|
return 'AbilityT{id: ${id}, distance: ${distance}}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -709,7 +763,7 @@ class StructOfStructs {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'StructOfStructs{a: $a, b: $b, c: $c}';
|
return 'StructOfStructs{a: ${a}, b: ${b}, c: ${c}}';
|
||||||
}
|
}
|
||||||
|
|
||||||
StructOfStructsT unpack() => StructOfStructsT(
|
StructOfStructsT unpack() => StructOfStructsT(
|
||||||
@@ -743,7 +797,7 @@ class StructOfStructsT implements fb.Packable {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'StructOfStructsT{a: $a, b: $b, c: $c}';
|
return 'StructOfStructsT{a: ${a}, b: ${b}, c: ${c}}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -803,6 +857,94 @@ class StructOfStructsObjectBuilder extends fb.ObjectBuilder {
|
|||||||
return fbBuilder.buffer;
|
return fbBuilder.buffer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
class StructOfStructsOfStructs {
|
||||||
|
StructOfStructsOfStructs._(this._bc, this._bcOffset);
|
||||||
|
|
||||||
|
static const fb.Reader<StructOfStructsOfStructs> 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<StructOfStructsOfStructs> {
|
||||||
|
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 {
|
class Stat {
|
||||||
Stat._(this._bc, this._bcOffset);
|
Stat._(this._bc, this._bcOffset);
|
||||||
factory Stat(List<int> bytes) {
|
factory Stat(List<int> bytes) {
|
||||||
@@ -821,7 +963,7 @@ class Stat {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'Stat{id: $id, val: $val, count: $count}';
|
return 'Stat{id: ${id}, val: ${val}, count: ${count}}';
|
||||||
}
|
}
|
||||||
|
|
||||||
StatT unpack() => StatT(
|
StatT unpack() => StatT(
|
||||||
@@ -858,7 +1000,7 @@ class StatT implements fb.Packable {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'StatT{id: $id, val: $val, count: $count}';
|
return 'StatT{id: ${id}, val: ${val}, count: ${count}}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -947,7 +1089,7 @@ class Referrable {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'Referrable{id: $id}';
|
return 'Referrable{id: ${id}}';
|
||||||
}
|
}
|
||||||
|
|
||||||
ReferrableT unpack() => ReferrableT(
|
ReferrableT unpack() => ReferrableT(
|
||||||
@@ -974,7 +1116,7 @@ class ReferrableT implements fb.Packable {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'ReferrableT{id: $id}';
|
return 'ReferrableT{id: ${id}}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1115,10 +1257,21 @@ class Monster {
|
|||||||
Race get signedEnum => Race.fromValue(const fb.Int8Reader().vTableGet(_bc, _bcOffset, 100, -1));
|
Race get signedEnum => Race.fromValue(const fb.Int8Reader().vTableGet(_bc, _bcOffset, 100, -1));
|
||||||
List<int>? get testrequirednestedflatbuffer => const fb.Uint8ListReader().vTableGetNullable(_bc, _bcOffset, 102);
|
List<int>? get testrequirednestedflatbuffer => const fb.Uint8ListReader().vTableGetNullable(_bc, _bcOffset, 102);
|
||||||
List<Stat>? get scalarKeySortedTables => const fb.ListReader<Stat>(Stat.reader).vTableGetNullable(_bc, _bcOffset, 104);
|
List<Stat>? get scalarKeySortedTables => const fb.ListReader<Stat>(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));
|
||||||
|
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
|
@override
|
||||||
String toString() {
|
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}, nanDefault: ${nanDefault}, infDefault: ${infDefault}, positiveInfDefault: ${positiveInfDefault}, infinityDefault: ${infinityDefault}, positiveInfinityDefault: ${positiveInfinityDefault}, negativeInfDefault: ${negativeInfDefault}, negativeInfinityDefault: ${negativeInfinityDefault}, doubleInfDefault: ${doubleInfDefault}}';
|
||||||
}
|
}
|
||||||
|
|
||||||
MonsterT unpack() => MonsterT(
|
MonsterT unpack() => MonsterT(
|
||||||
@@ -1171,7 +1324,18 @@ class Monster {
|
|||||||
vectorOfEnums: const fb.ListReader<Color>(Color.reader, lazy: false).vTableGetNullable(_bc, _bcOffset, 98),
|
vectorOfEnums: const fb.ListReader<Color>(Color.reader, lazy: false).vTableGetNullable(_bc, _bcOffset, 98),
|
||||||
signedEnum: signedEnum,
|
signedEnum: signedEnum,
|
||||||
testrequirednestedflatbuffer: const fb.Uint8ListReader(lazy: false).vTableGetNullable(_bc, _bcOffset, 102),
|
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,
|
||||||
|
nanDefault: nanDefault,
|
||||||
|
infDefault: infDefault,
|
||||||
|
positiveInfDefault: positiveInfDefault,
|
||||||
|
infinityDefault: infinityDefault,
|
||||||
|
positiveInfinityDefault: positiveInfinityDefault,
|
||||||
|
negativeInfDefault: negativeInfDefault,
|
||||||
|
negativeInfinityDefault: negativeInfinityDefault,
|
||||||
|
doubleInfDefault: doubleInfDefault);
|
||||||
|
|
||||||
static int pack(fb.Builder fbBuilder, MonsterT? object) {
|
static int pack(fb.Builder fbBuilder, MonsterT? object) {
|
||||||
if (object == null) return 0;
|
if (object == null) return 0;
|
||||||
@@ -1233,6 +1397,17 @@ class MonsterT implements fb.Packable {
|
|||||||
Race signedEnum;
|
Race signedEnum;
|
||||||
List<int>? testrequirednestedflatbuffer;
|
List<int>? testrequirednestedflatbuffer;
|
||||||
List<StatT>? scalarKeySortedTables;
|
List<StatT>? scalarKeySortedTables;
|
||||||
|
TestT? nativeInline;
|
||||||
|
LongEnum longEnumNonEnumDefault;
|
||||||
|
LongEnum longEnumNormalDefault;
|
||||||
|
double nanDefault;
|
||||||
|
double infDefault;
|
||||||
|
double positiveInfDefault;
|
||||||
|
double infinityDefault;
|
||||||
|
double positiveInfinityDefault;
|
||||||
|
double negativeInfDefault;
|
||||||
|
double negativeInfinityDefault;
|
||||||
|
double doubleInfDefault;
|
||||||
|
|
||||||
MonsterT({
|
MonsterT({
|
||||||
this.pos,
|
this.pos,
|
||||||
@@ -1284,7 +1459,18 @@ class MonsterT implements fb.Packable {
|
|||||||
this.vectorOfEnums,
|
this.vectorOfEnums,
|
||||||
this.signedEnum = Race.None,
|
this.signedEnum = Race.None,
|
||||||
this.testrequirednestedflatbuffer,
|
this.testrequirednestedflatbuffer,
|
||||||
this.scalarKeySortedTables});
|
this.scalarKeySortedTables,
|
||||||
|
this.nativeInline,
|
||||||
|
this.longEnumNonEnumDefault = const LongEnum._(0),
|
||||||
|
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
|
@override
|
||||||
int pack(fb.Builder fbBuilder) {
|
int pack(fb.Builder fbBuilder) {
|
||||||
@@ -1345,7 +1531,7 @@ class MonsterT implements fb.Packable {
|
|||||||
: fbBuilder.writeListUint8(testrequirednestedflatbuffer!);
|
: fbBuilder.writeListUint8(testrequirednestedflatbuffer!);
|
||||||
final int? scalarKeySortedTablesOffset = scalarKeySortedTables == null ? null
|
final int? scalarKeySortedTablesOffset = scalarKeySortedTables == null ? null
|
||||||
: fbBuilder.writeList(scalarKeySortedTables!.map((b) => b.pack(fbBuilder)).toList());
|
: fbBuilder.writeList(scalarKeySortedTables!.map((b) => b.pack(fbBuilder)).toList());
|
||||||
fbBuilder.startTable(50);
|
fbBuilder.startTable(62);
|
||||||
if (pos != null) {
|
if (pos != null) {
|
||||||
fbBuilder.addStruct(0, pos!.pack(fbBuilder));
|
fbBuilder.addStruct(0, pos!.pack(fbBuilder));
|
||||||
}
|
}
|
||||||
@@ -1398,12 +1584,25 @@ class MonsterT implements fb.Packable {
|
|||||||
fbBuilder.addInt8(48, signedEnum.value);
|
fbBuilder.addInt8(48, signedEnum.value);
|
||||||
fbBuilder.addOffset(49, testrequirednestedflatbufferOffset);
|
fbBuilder.addOffset(49, testrequirednestedflatbufferOffset);
|
||||||
fbBuilder.addOffset(50, scalarKeySortedTablesOffset);
|
fbBuilder.addOffset(50, scalarKeySortedTablesOffset);
|
||||||
|
if (nativeInline != null) {
|
||||||
|
fbBuilder.addStruct(51, nativeInline!.pack(fbBuilder));
|
||||||
|
}
|
||||||
|
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();
|
return fbBuilder.endTable();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
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}, nanDefault: ${nanDefault}, infDefault: ${infDefault}, positiveInfDefault: ${positiveInfDefault}, infinityDefault: ${infinityDefault}, positiveInfinityDefault: ${positiveInfinityDefault}, negativeInfDefault: ${negativeInfDefault}, negativeInfinityDefault: ${negativeInfinityDefault}, doubleInfDefault: ${doubleInfDefault}}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1421,7 +1620,7 @@ class MonsterBuilder {
|
|||||||
final fb.Builder fbBuilder;
|
final fb.Builder fbBuilder;
|
||||||
|
|
||||||
void begin() {
|
void begin() {
|
||||||
fbBuilder.startTable(50);
|
fbBuilder.startTable(62);
|
||||||
}
|
}
|
||||||
|
|
||||||
int addPos(int offset) {
|
int addPos(int offset) {
|
||||||
@@ -1624,6 +1823,50 @@ class MonsterBuilder {
|
|||||||
fbBuilder.addOffset(50, offset);
|
fbBuilder.addOffset(50, offset);
|
||||||
return fbBuilder.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 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() {
|
int finish() {
|
||||||
return fbBuilder.endTable();
|
return fbBuilder.endTable();
|
||||||
@@ -1681,6 +1924,17 @@ class MonsterObjectBuilder extends fb.ObjectBuilder {
|
|||||||
final Race? _signedEnum;
|
final Race? _signedEnum;
|
||||||
final List<int>? _testrequirednestedflatbuffer;
|
final List<int>? _testrequirednestedflatbuffer;
|
||||||
final List<StatObjectBuilder>? _scalarKeySortedTables;
|
final List<StatObjectBuilder>? _scalarKeySortedTables;
|
||||||
|
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({
|
MonsterObjectBuilder({
|
||||||
Vec3ObjectBuilder? pos,
|
Vec3ObjectBuilder? pos,
|
||||||
@@ -1733,6 +1987,17 @@ class MonsterObjectBuilder extends fb.ObjectBuilder {
|
|||||||
Race? signedEnum,
|
Race? signedEnum,
|
||||||
List<int>? testrequirednestedflatbuffer,
|
List<int>? testrequirednestedflatbuffer,
|
||||||
List<StatObjectBuilder>? scalarKeySortedTables,
|
List<StatObjectBuilder>? scalarKeySortedTables,
|
||||||
|
TestObjectBuilder? nativeInline,
|
||||||
|
LongEnum? longEnumNonEnumDefault,
|
||||||
|
LongEnum? longEnumNormalDefault,
|
||||||
|
double? nanDefault,
|
||||||
|
double? infDefault,
|
||||||
|
double? positiveInfDefault,
|
||||||
|
double? infinityDefault,
|
||||||
|
double? positiveInfinityDefault,
|
||||||
|
double? negativeInfDefault,
|
||||||
|
double? negativeInfinityDefault,
|
||||||
|
double? doubleInfDefault,
|
||||||
})
|
})
|
||||||
: _pos = pos,
|
: _pos = pos,
|
||||||
_mana = mana,
|
_mana = mana,
|
||||||
@@ -1783,7 +2048,18 @@ class MonsterObjectBuilder extends fb.ObjectBuilder {
|
|||||||
_vectorOfEnums = vectorOfEnums,
|
_vectorOfEnums = vectorOfEnums,
|
||||||
_signedEnum = signedEnum,
|
_signedEnum = signedEnum,
|
||||||
_testrequirednestedflatbuffer = testrequirednestedflatbuffer,
|
_testrequirednestedflatbuffer = testrequirednestedflatbuffer,
|
||||||
_scalarKeySortedTables = scalarKeySortedTables;
|
_scalarKeySortedTables = scalarKeySortedTables,
|
||||||
|
_nativeInline = nativeInline,
|
||||||
|
_longEnumNonEnumDefault = longEnumNonEnumDefault,
|
||||||
|
_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].
|
/// Finish building, and store into the [fbBuilder].
|
||||||
@override
|
@override
|
||||||
@@ -1836,7 +2112,7 @@ class MonsterObjectBuilder extends fb.ObjectBuilder {
|
|||||||
: fbBuilder.writeListUint8(_testrequirednestedflatbuffer!);
|
: fbBuilder.writeListUint8(_testrequirednestedflatbuffer!);
|
||||||
final int? scalarKeySortedTablesOffset = _scalarKeySortedTables == null ? null
|
final int? scalarKeySortedTablesOffset = _scalarKeySortedTables == null ? null
|
||||||
: fbBuilder.writeList(_scalarKeySortedTables!.map((b) => b.getOrCreateOffset(fbBuilder)).toList());
|
: fbBuilder.writeList(_scalarKeySortedTables!.map((b) => b.getOrCreateOffset(fbBuilder)).toList());
|
||||||
fbBuilder.startTable(50);
|
fbBuilder.startTable(62);
|
||||||
if (_pos != null) {
|
if (_pos != null) {
|
||||||
fbBuilder.addStruct(0, _pos!.finish(fbBuilder));
|
fbBuilder.addStruct(0, _pos!.finish(fbBuilder));
|
||||||
}
|
}
|
||||||
@@ -1889,6 +2165,19 @@ class MonsterObjectBuilder extends fb.ObjectBuilder {
|
|||||||
fbBuilder.addInt8(48, _signedEnum?.value);
|
fbBuilder.addInt8(48, _signedEnum?.value);
|
||||||
fbBuilder.addOffset(49, testrequirednestedflatbufferOffset);
|
fbBuilder.addOffset(49, testrequirednestedflatbufferOffset);
|
||||||
fbBuilder.addOffset(50, scalarKeySortedTablesOffset);
|
fbBuilder.addOffset(50, scalarKeySortedTablesOffset);
|
||||||
|
if (_nativeInline != null) {
|
||||||
|
fbBuilder.addStruct(51, _nativeInline!.finish(fbBuilder));
|
||||||
|
}
|
||||||
|
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();
|
return fbBuilder.endTable();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1927,7 +2216,7 @@ class TypeAliases {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
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(
|
TypeAliasesT unpack() => TypeAliasesT(
|
||||||
@@ -2002,7 +2291,7 @@ class TypeAliasesT implements fb.Packable {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
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}}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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.example_generated.dart' as my_game_example;
|
||||||
import './monster_test_my_game.example2_generated.dart' as my_game_example2;
|
import './monster_test_my_game.example2_generated.dart' as my_game_example2;
|
||||||
|
|
||||||
|
import './include_test1_generated.dart';
|
||||||
|
|
||||||
class InParentNamespace {
|
class InParentNamespace {
|
||||||
InParentNamespace._(this._bc, this._bcOffset);
|
InParentNamespace._(this._bc, this._bcOffset);
|
||||||
factory InParentNamespace(List<int> bytes) {
|
factory InParentNamespace(List<int> bytes) {
|
||||||
|
|||||||
Binary file not shown.
@@ -91,6 +91,9 @@ Additional options:
|
|||||||
- `--scoped-enums` : Use C++11 style scoped and strongly typed enums in
|
- `--scoped-enums` : Use C++11 style scoped and strongly typed enums in
|
||||||
generated C++. This also implies `--no-prefix`.
|
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.
|
- `--gen-includes` : (deprecated), this is the default behavior.
|
||||||
If the original behavior is required (no include
|
If the original behavior is required (no include
|
||||||
statements) use `--no-includes.`
|
statements) use `--no-includes.`
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ pass to the `GetRootAsMyRootType` function:
|
|||||||
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cs}
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cs}
|
||||||
using MyGame.Example;
|
using MyGame.Example;
|
||||||
using FlatBuffers;
|
using Google.FlatBuffers;
|
||||||
|
|
||||||
// This snippet ignores exceptions for brevity.
|
// This snippet ignores exceptions for brevity.
|
||||||
byte[] data = File.ReadAllBytes("monsterdata_test.mon");
|
byte[] data = File.ReadAllBytes("monsterdata_test.mon");
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ To generate the docs for FlatBuffers from the source files, you
|
|||||||
will first need to install two programs.
|
will first need to install two programs.
|
||||||
|
|
||||||
1. You will need to install `doxygen`. See
|
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.
|
2. You will need to install `doxypypy` to format python comments appropriately.
|
||||||
Install it from [here](https://github.com/Feneric/doxypypy).
|
Install it from [here](https://github.com/Feneric/doxypypy).
|
||||||
|
|||||||
@@ -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.
|
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}
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.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) {
|
if !monster.mut | ||||||