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
* 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>
* [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
* 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
* 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
* [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.
Kotlin code generation was producing wrong logic for accessors
of vector of union elements. This was shadowed by the fact[1] that asserts
in Kotlin are silently ignored unless the flag "-ea" is passed to the JVM.
The tests are also updated to enable asserts.
1 - https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/assert.html
* 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.
* Ensuring test/generate_code.sh was ran
* Fixed Dart Tests by removing code-gen for included files.
* General cleanup of codebase.
* 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.
* Fix issue #5906, Prohibit declaration of an array of pointers inside structs
- idl_parser.cpp: Prohibit declaration of an array of pointers inside structs
- idl_gen_cpp.cpp: Extract GenStructConstructor() method from GenStruct() to simplify future modification
- idl_gen_cpp.cpp: Add assert for checking of Array fields in structs on code-generation stage
* Fix the error 'unused local variable' in release build
* Fix: format the PR code according to coding rules
* Add test-case and fix review notes
* Moves the code to use _vtablestorage
Rebuilt the test to confirm to the new API
Adds documentation + generates code for grpc
Reverts indentation
v0.4.0
Updated swift/readme.md
Updates VtableStorage to ensure space instead of reallocating each time
Fixes str count not being correct
* Fixes issue with boolean constant not being set + removes unused function
The native include files tag is intended to be used together with the object based api. A client which does not use the object based api should have no need to know about the additional include files needed for the object based api. The generated flatbuffers code without object api enabled should compile without the additional header files.
* idl_gen_rust.cpp: Fixgoogle/flatbuffers#5849 (Option/required-aware
codegen for unions)
The generated code was assuming that an Option is always returned by the
union-getter method: however, this is only true if the field is not
marked as `(required)`.
* idl_gen_rust.cpp: flip conditional
* idl_gen_rust.cpp: Add comment, as requested in review
The code added is not covered by the integration test
* added basic code
* backup work
* got class property to work
* backup progress
* implementented fmt for creating code
* added docs for genFieldUtils
* back up work
* added base helper js func
* added union js code
* added unpackTo and base for pack
* added pack code
* added null check for packing struct list
* passes compile test
* fixed some spacing of generated functions
* added annotations for constructors
* added obj api unpack test
* tested pack to work
* merge branch
* separated js and ts test
* fixed union signature to include string
* fixed generator to support string union
* hardcoded fb builder name
* refactored struct vector creation
* work around createLong
* handle default value in constructor
* update typescript docs
* added notes about import flag
* fixed formatting stuffs
* undo TypescriptTest change
* refactored fmt
* updated generated code
* remove ignoring union_vector for js
* revert changes for .project
* revert changes for package.json
* don't generate js in ts test
* fixed android project file
* removed unused js function
* removed package-lock.json
* adjust createObjList to new signature
* changed regex to callback style
* fixed package.json
* used existing func for generating annotation
* changed ternary to !!
* added return type for lambda
* removed callback style for obj api generator
* fixed js file indentation
* removed unused header
* added tests for string only union
* handle string only union and refactor union conv func
* updated generated ts files
* renamed union conv func
* made js test create files like other languages
* removed union string only handling
* don't allow null in createObjectOffsetList
* updated generated ts code
* changed the line that triggers Windows build errors
* hopefully fix CI error
* [C#] Fix nested structs and arrays in Object API
The adds support for nested structs and fixed size arrays in the C#
Object API codegen which previously generated invalid code that wouldn't
compile.
- Nested structs would originally generate syntax errors due to adding an
additional `.` to separate fields.
- Fixed size arrays of nested structs would originally generate code for
the first field in the top most struct, and would lead to a compiler
error due to referencing undefined variables.
* [C#] fix nested structs and arrays of structs.
* fix nested structs + arrays
* add table support
* Cleanup code
Co-authored-by: mugisoba <mugisoba+github@icloud.com>
When either source or destination or both namespaces were empty, flatc
was generating incorrect TS code.
For example:
```
export namespace {
export import ObjectId = NS10770172024577249292..ObjectId;}
```
In this case the target namespace is empty, and so is the namespace
between the NSxxx placeholder and the target type.