yandex_maps.patch 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. commit f7ef3a38113d34baa5cea2f8ba448c41283db8b4
  2. author: trivias
  3. date: 2019-11-12T16:23:02+03:00
  4. revision: 5908421
  5. Port mapsmobi iterator flatc extension to Arcadia flatc
  6. Расширение flatc, которое генерит заголовок, позволяющий читать flatbuffer произвольным классом с интерфейсом аналогичным void*.
  7. Ревью в mapsmobi:
  8. https://maps.crucible.yandex-team.ru/cru/CRMCORE-12050
  9. REVIEW: 1001396
  10. --- a/include/flatbuffers/idl.h
  11. +++ b/include/flatbuffers/idl.h
  12. @@ -581,6 +581,7 @@ struct IDLOptions {
  13. kRust = 1 << 14,
  14. kKotlin = 1 << 15,
  15. kSwift = 1 << 16,
  16. + kCppYandexMapsIter = 1 << 19,
  17. kNim = 1 << 17,
  18. kProto = 1 << 18,
  19. };
  20. @@ -1071,2 +1072,11 @@ extern std::string GenerateFBS(const Parser &parser,
  21. +// Generate a C++ header for reading with templated file iterator from
  22. +// the definitions in the Parser object.
  23. +// See idl_gen_cpp_yandex_maps_iter.cpp.
  24. +extern std::string GenerateCPPYandexMapsIter(const Parser &parser,
  25. + const std::string &include_guard_ident);
  26. +extern bool GenerateCPPYandexMapsIter(const Parser &parser,
  27. + const std::string &path,
  28. + const std::string &file_name);
  29. +
  30. // Generate GRPC Cpp interfaces.
  31. // See idl_gen_grpc.cpp.
  32. --- a/src/flatc_main.cpp
  33. +++ b/src/flatc_main.cpp
  34. @@ -166,1 +166,6 @@ int main(int argc, const char *argv[]) {
  35. flatbuffers::NewSwiftCodeGenerator());
  36. +
  37. + flatc.RegisterCodeGenerator(
  38. + flatbuffers::FlatCOption{ "", "yandex-maps-iter", "",
  39. + "Generate C++ template headers for tables/structs" },
  40. + flatbuffers::NewCppYandexMapsIterCodeGenerator());
  41. --- a/src/flatc_main.cpp
  42. +++ b/src/flatc_main.cpp
  43. @@ -27,2 +27,3 @@
  44. #include "idl_gen_cpp.h"
  45. + #include "idl_gen_cpp_yandex_maps_iter.h"
  46. #include "idl_gen_csharp.h"