tree 29ef145f9591a2f44be472fbbe92ec5bd97dbbf1
parent e381bfdbd8ced27ff673a918545eee29cc304eb6
author Tarrin Neal <tarrinneal@gmail.com> 1671350113 -0800
committer GitHub <noreply@github.com> 1671350113 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJjnsdhCRBK7hj4Ov3rIwAAPpEIACVw6cA3QRtkr7imzv/AS8vr
 beD7bBaJWeKH+BTeRDblL8VZ8eTdadbVY1T461M0WurlL0bFCSRF7tQ1IWvmGsaa
 znukUIoZqOVsKmle7mTPNWxkUmh2HTBqxNXmCbPfuTsCR/8lsZLPQZKrc6DoMa1V
 0HuQAtYL9T0XTGsvp/e7LB8tKlrJmFIFpE8Ov3XRU2jwYGYC6b/mh23Kjar9xbie
 TYdo2ZOE8h4OJZg1FvdJckeZOYgct0QrFfAyWr05ZPGKzN5rZoA7lin2UwYLkUbW
 SVIuLEeaBvurwH7KjhWkN6HfVJOrU7jlIOTdUg/Xsh9RGnIBwCUVyrmEt3Akq8Q=
 =Pwwu
 -----END PGP SIGNATURE-----
 

[Pigeon] Condenses serialization formats (#2745)

* Fixs missed indents on generated comments

* begin improved serialization

* formatting errors

* Dart encoder updated to use lists, tests to match

* Begin swift serial, change error shape

* update tests for swift and dart

* true > false

* Return to Object

* correctly nest lists in dart and tests

* Kotlin gen and tests updated to lists

* Java and Tests updated to new serials

* Stuart check this pr (start of objc changes)

* obj c tests for serial

* update unit tests to match new generated outputs

* finish objc tests

* More kt tests

* c++ generator and unit tests

* analyze, format, changelog

* test file updates for ci

* format and analyze again

* a few more test generated files

* Partial Windows fixes

- Fix API call typo.
- Fix double nesting of arrays for class serialization.
- Replace incorrect emplace calls with push_back.
- Start to update unit tests.

* null field tests c++

* format

* fix merge issue with broken test

* remove unneeded wrapping

* generated files

* fix some formatting errors

* format

* more gen files

* gen files

* generator reviews pt1

* test fixes pt1

* fixed nits and nil issues with objc

* better fix for objc null classes

* fix doc comment

* unit test updates

* format

* some c++ fixes

* typo

* format

* Some nits and such

* comment

* remove deleted files

* c++ nits

* objc nits

* all but one c++ bug

* init all fields

* start of documenting data shape

* nits and error handling

* more nits and such

* bug?

* references

* const

* new null for larger alltypes

Co-authored-by: Stuart Morgan <stuartmorgan@google.com>