* Adding FlexBuffers support for Dart language
* Introduce snapshot method.
* Fix docu
* Replacing extension methods with static methods in order to support older Dart version
* Improving code based on PR feedback. Mainly rename refactoring.
* Addressing all PR feedback which does not need clarification
* exchange dynamic type with Object
* Adds better API documentation.
[] operator throws a very descriptive exception in case of a bad key.
* Implementation of JavaScript FlexBuffers decoder
* implements JS FlexBuffers builder
* replacing _toF32 with Math.fround
* Introducing test for BigInt number
* Moving functions from BitWitdth & ValueType object into BitWidthUtil and ValueTypeUtil accordingly.
Removing defensive checks.
Introducing fix for large int numbers by converting them to BigInt type.
Introducing handling for BigInt type in `add` method.
Using TextEncoder and Decoder to handle string / utf8 conversion.
* rename variable
* Lets user turn deduplication strategies for strings, keys and vector of keys off while building FlexBuffer.
Implements quick sort and choses quick sort if the number of keys is bigger then 20.
Removes unnecessary dict lookups in BitWidthUtil helper functions
* make iwidth and uwidth computation simpler and faster
* Making redInt and readUint a bit faster and shim the BigInt / BigUint usage
* Fixing a bug in FlexBuffers JS, where offsets and lengths are stored and read as int and not as uint values.
* Fixing a bug in FlexBuffers Dart, where offset and length values are stored and read as int values instead of uint values
* Adding FlexBuffers support for Dart language
* Introduce snapshot method.
* Fix docu
* Replacing extension methods with static methods in order to support older Dart version
* Improving code based on PR feedback. Mainly rename refactoring.
* Addressing all PR feedback which does not need clarification
* exchange dynamic type with Object
* Adds better API documentation.
[] operator throws a very descriptive exception in case of a bad key.
* Implementation of JavaScript FlexBuffers decoder
* implements JS FlexBuffers builder
* replacing _toF32 with Math.fround
* Introducing test for BigInt number
* Moving functions from BitWitdth & ValueType object into BitWidthUtil and ValueTypeUtil accordingly.
Removing defensive checks.
Introducing fix for large int numbers by converting them to BigInt type.
Introducing handling for BigInt type in `add` method.
Using TextEncoder and Decoder to handle string / utf8 conversion.
* rename variable
* Lets user turn deduplication strategies for strings, keys and vector of keys off while building FlexBuffer.
Implements quick sort and choses quick sort if the number of keys is bigger then 20.
Removes unnecessary dict lookups in BitWidthUtil helper functions
* make iwidth and uwidth computation simpler and faster
* Making redInt and readUint a bit faster and shim the BigInt / BigUint usage
This commit performs refactoring (Extract Method) of the C++ code generator.
It extracts code generation of a table getter/mutator into separated methods.
* Attach JvmStatic annotation to each method of companion object
Kotlin does not have static accessor so companion object used instead of static.
It's so natural. But when use kotlin companion object methods on java it is very inconvenient.
```java
GeneratedClassByFlatBuffer.Companion.someMethod()
```
If use @JvmStatic annotation it can be shorten like below.
```java
GeneratedClassByFlatBuffer.someMethod()
```
* Formatting by Idea Google C++ style
* Add comments - Commit for missing cla
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Add comments - Commit for missing cla
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Reset code formatting except modified lines
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Pass missing flag to validateVersion method
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Add annotations to missing method in companion object
* addVector
* createVector
* endVector
* tableCreator
And also I tried add compiler option for generate annotation who don't like this operation.
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Modify unmatched option name in compiler usage
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Add missing operation for finishSizePrefixed and finishStructBuffer method.
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Add compiled example with --kotlin-gen-jvmstatic option.
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Fix Compiler.md
Change option name from --gen-jvm-static-annotation to --kotlin-gen-jvmstatic
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Use IDLOptions reference instead of bool parameter.
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Change option name - kotlin_gen_jvmstatic to gen_jvmstatic
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Use IDLOptions reference instead of bool parameter and missing process @JvmStatic as suffix.
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Add code generation for --gen-jvmstatic option
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Miss typo directory for including.
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Miss typo variable suffix for including.
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Fix camel case to snake case.
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Rollback generate code for gen_jvmstatic option.
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Delete generated test files.
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* add missing new line at end of file.
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
* Remove generated test file by command line.
Signed-off-by: Yoon KyongSik <sam1287@gmail.com>
Co-authored-by: sam <sam@jennifersoft.com>
* Cleaned up .NET testing script for Mono
Cleaned up the .NET testing script to make it a little better. It
purposefully doesn't delete the .NET installer and SDk after running the
script, so that they can be used in subsequent invocations. This greatly
speeds up the script.
The downloaded files are ignored by git by default. They can be
explicitly cleaned up by runnning the clean script (clean.sh).
* Trying using older Version indicator
* Remove lins to monsterdata and reference it directly.
* Updated appveryor script to remove copying of files no longer needed
* Continue to update appveyor script to work. Disabled CS0169 in ByteBufferTest
* [TS] Fix four bugs with imported types in TypeScript.
* When a type had a vector of imported enums:
1) the enum type's file wasn't added to the generated code's list of
imports; and
2) the enum wasn't prefixed with the NS<hash> prefix and wasn't getting
resolved; but
3) non-enum types (ie, "flatbuffers.Offset") were getting the NS<hash>
prefix when they weren't.
* Also, type name prefixes weren't properly attributed with imported
structs in unions because the source definition passed to the typename
prefixing method was for the union, not for the location of the imported
struct.
* clang fmt
* Use of enum_def / struct_def for prefixing types needs to have the files
added to imported files when not generating all types.
* clang fmt
This PR attempts to switch namespace from public enum back to ordinary
concat with _ in Swift. This kept style similar with protobuf, but
different from other popular style guide in Swift.
This is needed because previously, when we do `public enum`, we don't
really know when to declare and when to extend (extension). With namespace
implementation in this PR, there is no such ambiguity.
Adds swift test code
Replaces if statments
Adds swift to supported languages for optionals
Moved std::string to auto
Adds nullable scalars support in object api
* [C++] Fix compiler error from deleted assignment operator (#6036)
The assignment operator of the `buf_` member is deleted, we cannot call it from the assignment operator of the `TableKeyComparator` struct.
=> Also delete the assignment operator of the `TableKeyComparator` struct (already private anyhow).
* [C++] Fix compiler error from deleted assignment operator (#6036) - fix extraneous semicolon
The assignment operator of the `buf_` member is deleted, we cannot call it from the assignment operator of the `TableKeyComparator` struct.
=> Also delete the assignment operator of the `TableKeyComparator` struct (already private anyhow).
* First draft of rust optionals
* Code cleanup around ftBool and ftVectorOfBool
* Tests for Rust optional scalars
* test bools too
Co-authored-by: Casper Neo <cneo@google.com>
This is the first step to upgrade grpc dependency to the latest version.
- Patch protobuf 3.6.1. and grpc 1.15.1 to fix build errors when using the latest Bazel version (3.4.1).
- Add grpc/tests:grpc_test. One can kick off tests in Bazel by calling `bazel test grpc/tests/...`.
- Add missing build targets in tests/BUILD in order to support grpc/tests/BUILD
* Perpares swift to take optional scalars + adds optional string helper method + disables linters in generated code
* Small fix for generated code
* Update grpc support to alpha 17 for swift
* Parser support for nullable scalars
* Use older C++ features
* use default element
* Add a test for json, flexbuffers, and null
* test comments and names
Co-authored-by: Casper Neo <cneo@google.com>
Dart schema compiler generated a static getter for enum values, which
always created a new map instance for its callers. See #5819.
Now it generates const map for better performance
and readability.
Previous FB import was based on the original early TS implementation
and did not take into accout NPM. There doesn't seem to be a use
for current implemenentation anymore, while NPM compatibility is
needed.
Co-authored-by: Kamil Rojewski <kamil.rojewski@gmail.com>
Added a method FlatBufferBuilder::createSharedString that
enable string sharing for building messages on java.
The shared pool will only contains strings inserted by
this methods.
* [Swift] FlatBuffers createMonster method doesn't treat struct properly
This PR fixed a issue where a struct is not treated properly when use
create inside.
A example would be the pos inside Monster. The createMonster method
takes an Offset for pos. However, FlatBuffersBuilder.add(struct:)
doesn't really take Offset argument. That means we don't really add a
struct at all for Monster.
It will show up as the pos never set.
This doesn't show up in FlatBuffersMonsterWriterTests.swift because it
implements its own createMonster method, which happens do the dance
properly (i.e. first call create(struct) and then immediately call
add:).
This PR modified the `add(pos:)` interface such that it takes the
UnsafeMutableRawPointer directly, calling `create(struct:)` under the hood.
I can add unit tests once the direction of this PR approved.
* Fix object api pack method codegen.
* Add unit tests that uses Monster.createMonster method to serialize.
* Updated sample_binary.swift
flatbuffers project currently depends on an old version of GRPC library and has known issues working with the latest version (issue #5836). Therefore, a patch file is created and put under bazel/ directory before supporting the latest GRPC version.
* Added code gen for evolution tests back in.
* General generate code and clang format
* Added code gen for evolution tests back in.
* General generate code and clang format
* reran generate_code.sh
* Added code gen for evolution tests back in.
* General generate code and clang format
* Added code gen for evolution tests back in.
* General generate code and clang format
* Enforce snake_case for schema field names
* Switched to basic for loop, Fixed warning message
* Fix doc comment warnings
Can't use doc comment "///" syntax on macros, that generates the following warning:
warning: unused doc comment
--> src\flexbuffer_type.rs:236:5
|
236 | /// returns true if and only if the flexbuffer type is `VectorFloat4`.
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macros
|
= help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
So switched to just use ordinary "//" comments on these to be warning free
* Upgrade num_enum 0.4.1 -> 0.5.0
* Remove unused and non-working usage of test crates
* Remove usage of abandoned debug_stub_derive crate
Which brought in old pre-v1 syn and quote crates.
This replaces it with just manual Debug trait implementation instead for the 2 cases
* Fixed refractoring issue in reflection/generate_code.sh. Also, mv deletes the original file, so I don't need to clean it up manually in that case.
* Fixed Dart Tests by removing code-gen for included files.
* Added code gen for evolution tests back in.
* General generate code and clang format
* Added evolution schema generation to .bat file
* Added code gen for evolution tests back in.
* General generate code and clang format
* Added evolution schema generation to .bat file
* reran generate_code.sh
* Removed wildcard from generate_code.bat that doesn't work
* Initialize memory when clear ByteBuffer
It seems (based on my limited understanding) that FlatBuffers requires
the writable area to be 0 initialized. However, we missed it when clear
the buffer to reinitialize it.
This PR fixed that by calling initialize (also fixed the typo)
explicitly.
* Update version to 0.5.3
* [TS] Use proper TypedArray in create*Vector
This commit adds TypeScript function overloads to create*Vector for
proper TypedArray types, effectively resolves#5373.
* Add @deprecated to old Uint8Array overloads
* Removes posix definition
stat and fseeko are not used. Tested on QNX (GCC 5.4.0) and MinGw
* Updates realpath to more modern (2008) version
* Removes unix specific headers
* Adds detection of strtoll_l as android API < 21 does not provide it
* Includes cstdlib and formatting
Removes cmakelist alterations as not necessary. Formatting not complete.
* Stdlib outside if
Stdlib is available on all platforms
* Fixes indentation
* Adds locale check to android build
* Adds missing brace
* full names
* Removes again, no clue
* Updates base to check for locale independent android
Cmake already checks for others, also MSC?
* Changes to test on available and not requested
* Fixes android bad xopen_version define
* Removes warning
In >= C++11 mode, generate default member initializers instead of a
default constructor.
The new code is semantically equivalent, but will allow aggregate
initialization in C++20.
This is a different take on #5951.