planetscale 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/ci.yml +24 -0
  3. data/.github/workflows/gem-push.yml +38 -0
  4. data/.github/workflows/licensed.yml +43 -0
  5. data/.gitignore +10 -0
  6. data/.licensed.yml +9 -0
  7. data/.licenses/go/github.com/armon/circbuf.dep.yml +31 -0
  8. data/.licenses/go/github.com/gorilla/mux.dep.yml +41 -0
  9. data/.licenses/go/github.com/hashicorp/go-cleanhttp.dep.yml +375 -0
  10. data/.licenses/go/github.com/mitchellh/go-homedir.dep.yml +32 -0
  11. data/.licenses/go/github.com/pkg/errors.dep.yml +36 -0
  12. data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +160 -0
  13. data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +180 -0
  14. data/.licenses/go/go.uber.org/atomic.dep.yml +31 -0
  15. data/.licenses/go/go.uber.org/multierr.dep.yml +30 -0
  16. data/.licenses/go/go.uber.org/zap.dep.yml +30 -0
  17. data/.licenses/go/go.uber.org/zap/buffer.dep.yml +30 -0
  18. data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +30 -0
  19. data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +30 -0
  20. data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +31 -0
  21. data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +31 -0
  22. data/.licenses/go/golang.org/x/net/context/ctxhttp.dep.yml +63 -0
  23. data/.licenses/go/golang.org/x/oauth2.dep.yml +44 -0
  24. data/.licenses/go/golang.org/x/oauth2/internal.dep.yml +38 -0
  25. data/.ruby_version +1 -0
  26. data/Gemfile +8 -0
  27. data/LICENSE +201 -0
  28. data/README.md +88 -0
  29. data/Rakefile +10 -0
  30. data/bin/console +15 -0
  31. data/bin/setup +17 -0
  32. data/controller.go +255 -0
  33. data/go.mod +16 -0
  34. data/go.sum +428 -0
  35. data/lib/generators/planetscale/install_generator.rb +58 -0
  36. data/lib/planetscale.rb +137 -0
  37. data/lib/planetscale/version.rb +5 -0
  38. data/planetscale.gemspec +44 -0
  39. data/proxy.go +128 -0
  40. data/vendor/github.com/armon/circbuf/.gitignore +22 -0
  41. data/vendor/github.com/armon/circbuf/LICENSE +20 -0
  42. data/vendor/github.com/armon/circbuf/README.md +28 -0
  43. data/vendor/github.com/armon/circbuf/circbuf.go +92 -0
  44. data/vendor/github.com/armon/circbuf/go.mod +1 -0
  45. data/vendor/github.com/golang/protobuf/AUTHORS +3 -0
  46. data/vendor/github.com/golang/protobuf/CONTRIBUTORS +3 -0
  47. data/vendor/github.com/golang/protobuf/LICENSE +28 -0
  48. data/vendor/github.com/golang/protobuf/proto/buffer.go +324 -0
  49. data/vendor/github.com/golang/protobuf/proto/defaults.go +63 -0
  50. data/vendor/github.com/golang/protobuf/proto/deprecated.go +113 -0
  51. data/vendor/github.com/golang/protobuf/proto/discard.go +58 -0
  52. data/vendor/github.com/golang/protobuf/proto/extensions.go +356 -0
  53. data/vendor/github.com/golang/protobuf/proto/properties.go +306 -0
  54. data/vendor/github.com/golang/protobuf/proto/proto.go +167 -0
  55. data/vendor/github.com/golang/protobuf/proto/registry.go +317 -0
  56. data/vendor/github.com/golang/protobuf/proto/text_decode.go +801 -0
  57. data/vendor/github.com/golang/protobuf/proto/text_encode.go +560 -0
  58. data/vendor/github.com/golang/protobuf/proto/wire.go +78 -0
  59. data/vendor/github.com/golang/protobuf/proto/wrappers.go +34 -0
  60. data/vendor/github.com/gorilla/mux/AUTHORS +8 -0
  61. data/vendor/github.com/gorilla/mux/LICENSE +27 -0
  62. data/vendor/github.com/gorilla/mux/README.md +805 -0
  63. data/vendor/github.com/gorilla/mux/doc.go +306 -0
  64. data/vendor/github.com/gorilla/mux/go.mod +3 -0
  65. data/vendor/github.com/gorilla/mux/middleware.go +74 -0
  66. data/vendor/github.com/gorilla/mux/mux.go +606 -0
  67. data/vendor/github.com/gorilla/mux/regexp.go +388 -0
  68. data/vendor/github.com/gorilla/mux/route.go +736 -0
  69. data/vendor/github.com/gorilla/mux/test_helpers.go +19 -0
  70. data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +363 -0
  71. data/vendor/github.com/hashicorp/go-cleanhttp/README.md +30 -0
  72. data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +58 -0
  73. data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +20 -0
  74. data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +3 -0
  75. data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +48 -0
  76. data/vendor/github.com/mitchellh/go-homedir/LICENSE +21 -0
  77. data/vendor/github.com/mitchellh/go-homedir/README.md +14 -0
  78. data/vendor/github.com/mitchellh/go-homedir/go.mod +1 -0
  79. data/vendor/github.com/mitchellh/go-homedir/homedir.go +167 -0
  80. data/vendor/github.com/pkg/errors/.gitignore +24 -0
  81. data/vendor/github.com/pkg/errors/.travis.yml +10 -0
  82. data/vendor/github.com/pkg/errors/LICENSE +23 -0
  83. data/vendor/github.com/pkg/errors/Makefile +44 -0
  84. data/vendor/github.com/pkg/errors/README.md +59 -0
  85. data/vendor/github.com/pkg/errors/appveyor.yml +32 -0
  86. data/vendor/github.com/pkg/errors/errors.go +288 -0
  87. data/vendor/github.com/pkg/errors/go113.go +38 -0
  88. data/vendor/github.com/pkg/errors/stack.go +177 -0
  89. data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +139 -0
  90. data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +258 -0
  91. data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +142 -0
  92. data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +305 -0
  93. data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +131 -0
  94. data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +368 -0
  95. data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +78 -0
  96. data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +163 -0
  97. data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +467 -0
  98. data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +73 -0
  99. data/vendor/go.uber.org/atomic/.codecov.yml +19 -0
  100. data/vendor/go.uber.org/atomic/.gitignore +12 -0
  101. data/vendor/go.uber.org/atomic/.travis.yml +27 -0
  102. data/vendor/go.uber.org/atomic/CHANGELOG.md +76 -0
  103. data/vendor/go.uber.org/atomic/LICENSE.txt +19 -0
  104. data/vendor/go.uber.org/atomic/Makefile +78 -0
  105. data/vendor/go.uber.org/atomic/README.md +63 -0
  106. data/vendor/go.uber.org/atomic/bool.go +81 -0
  107. data/vendor/go.uber.org/atomic/bool_ext.go +53 -0
  108. data/vendor/go.uber.org/atomic/doc.go +23 -0
  109. data/vendor/go.uber.org/atomic/duration.go +82 -0
  110. data/vendor/go.uber.org/atomic/duration_ext.go +40 -0
  111. data/vendor/go.uber.org/atomic/error.go +51 -0
  112. data/vendor/go.uber.org/atomic/error_ext.go +39 -0
  113. data/vendor/go.uber.org/atomic/float64.go +76 -0
  114. data/vendor/go.uber.org/atomic/float64_ext.go +47 -0
  115. data/vendor/go.uber.org/atomic/gen.go +26 -0
  116. data/vendor/go.uber.org/atomic/go.mod +8 -0
  117. data/vendor/go.uber.org/atomic/go.sum +9 -0
  118. data/vendor/go.uber.org/atomic/int32.go +102 -0
  119. data/vendor/go.uber.org/atomic/int64.go +102 -0
  120. data/vendor/go.uber.org/atomic/nocmp.go +35 -0
  121. data/vendor/go.uber.org/atomic/string.go +54 -0
  122. data/vendor/go.uber.org/atomic/string_ext.go +43 -0
  123. data/vendor/go.uber.org/atomic/uint32.go +102 -0
  124. data/vendor/go.uber.org/atomic/uint64.go +102 -0
  125. data/vendor/go.uber.org/atomic/value.go +31 -0
  126. data/vendor/go.uber.org/multierr/.codecov.yml +15 -0
  127. data/vendor/go.uber.org/multierr/.gitignore +4 -0
  128. data/vendor/go.uber.org/multierr/.travis.yml +23 -0
  129. data/vendor/go.uber.org/multierr/CHANGELOG.md +60 -0
  130. data/vendor/go.uber.org/multierr/LICENSE.txt +19 -0
  131. data/vendor/go.uber.org/multierr/Makefile +42 -0
  132. data/vendor/go.uber.org/multierr/README.md +23 -0
  133. data/vendor/go.uber.org/multierr/error.go +449 -0
  134. data/vendor/go.uber.org/multierr/glide.yaml +8 -0
  135. data/vendor/go.uber.org/multierr/go.mod +8 -0
  136. data/vendor/go.uber.org/multierr/go.sum +11 -0
  137. data/vendor/go.uber.org/multierr/go113.go +52 -0
  138. data/vendor/go.uber.org/zap/.codecov.yml +17 -0
  139. data/vendor/go.uber.org/zap/.gitignore +32 -0
  140. data/vendor/go.uber.org/zap/.readme.tmpl +109 -0
  141. data/vendor/go.uber.org/zap/.travis.yml +23 -0
  142. data/vendor/go.uber.org/zap/CHANGELOG.md +432 -0
  143. data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +75 -0
  144. data/vendor/go.uber.org/zap/CONTRIBUTING.md +81 -0
  145. data/vendor/go.uber.org/zap/FAQ.md +156 -0
  146. data/vendor/go.uber.org/zap/LICENSE.txt +19 -0
  147. data/vendor/go.uber.org/zap/Makefile +63 -0
  148. data/vendor/go.uber.org/zap/README.md +134 -0
  149. data/vendor/go.uber.org/zap/array.go +320 -0
  150. data/vendor/go.uber.org/zap/buffer/buffer.go +123 -0
  151. data/vendor/go.uber.org/zap/buffer/pool.go +49 -0
  152. data/vendor/go.uber.org/zap/checklicense.sh +17 -0
  153. data/vendor/go.uber.org/zap/config.go +264 -0
  154. data/vendor/go.uber.org/zap/doc.go +113 -0
  155. data/vendor/go.uber.org/zap/encoder.go +79 -0
  156. data/vendor/go.uber.org/zap/error.go +80 -0
  157. data/vendor/go.uber.org/zap/field.go +539 -0
  158. data/vendor/go.uber.org/zap/flag.go +39 -0
  159. data/vendor/go.uber.org/zap/glide.yaml +34 -0
  160. data/vendor/go.uber.org/zap/global.go +168 -0
  161. data/vendor/go.uber.org/zap/global_go112.go +26 -0
  162. data/vendor/go.uber.org/zap/global_prego112.go +26 -0
  163. data/vendor/go.uber.org/zap/go.mod +13 -0
  164. data/vendor/go.uber.org/zap/go.sum +56 -0
  165. data/vendor/go.uber.org/zap/http_handler.go +81 -0
  166. data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +31 -0
  167. data/vendor/go.uber.org/zap/internal/color/color.go +44 -0
  168. data/vendor/go.uber.org/zap/internal/exit/exit.go +64 -0
  169. data/vendor/go.uber.org/zap/level.go +132 -0
  170. data/vendor/go.uber.org/zap/logger.go +344 -0
  171. data/vendor/go.uber.org/zap/options.go +140 -0
  172. data/vendor/go.uber.org/zap/sink.go +161 -0
  173. data/vendor/go.uber.org/zap/stacktrace.go +85 -0
  174. data/vendor/go.uber.org/zap/sugar.go +304 -0
  175. data/vendor/go.uber.org/zap/time.go +27 -0
  176. data/vendor/go.uber.org/zap/writer.go +99 -0
  177. data/vendor/go.uber.org/zap/zapcore/console_encoder.go +161 -0
  178. data/vendor/go.uber.org/zap/zapcore/core.go +113 -0
  179. data/vendor/go.uber.org/zap/zapcore/doc.go +24 -0
  180. data/vendor/go.uber.org/zap/zapcore/encoder.go +443 -0
  181. data/vendor/go.uber.org/zap/zapcore/entry.go +264 -0
  182. data/vendor/go.uber.org/zap/zapcore/error.go +115 -0
  183. data/vendor/go.uber.org/zap/zapcore/field.go +227 -0
  184. data/vendor/go.uber.org/zap/zapcore/hook.go +68 -0
  185. data/vendor/go.uber.org/zap/zapcore/increase_level.go +66 -0
  186. data/vendor/go.uber.org/zap/zapcore/json_encoder.go +534 -0
  187. data/vendor/go.uber.org/zap/zapcore/level.go +175 -0
  188. data/vendor/go.uber.org/zap/zapcore/level_strings.go +46 -0
  189. data/vendor/go.uber.org/zap/zapcore/marshaler.go +61 -0
  190. data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +179 -0
  191. data/vendor/go.uber.org/zap/zapcore/sampler.go +208 -0
  192. data/vendor/go.uber.org/zap/zapcore/tee.go +81 -0
  193. data/vendor/go.uber.org/zap/zapcore/write_syncer.go +123 -0
  194. data/vendor/golang.org/x/net/AUTHORS +3 -0
  195. data/vendor/golang.org/x/net/CONTRIBUTORS +3 -0
  196. data/vendor/golang.org/x/net/LICENSE +27 -0
  197. data/vendor/golang.org/x/net/PATENTS +22 -0
  198. data/vendor/golang.org/x/net/context/context.go +56 -0
  199. data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +71 -0
  200. data/vendor/golang.org/x/net/context/go17.go +73 -0
  201. data/vendor/golang.org/x/net/context/go19.go +21 -0
  202. data/vendor/golang.org/x/net/context/pre_go17.go +301 -0
  203. data/vendor/golang.org/x/net/context/pre_go19.go +110 -0
  204. data/vendor/golang.org/x/oauth2/.travis.yml +13 -0
  205. data/vendor/golang.org/x/oauth2/AUTHORS +3 -0
  206. data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +26 -0
  207. data/vendor/golang.org/x/oauth2/CONTRIBUTORS +3 -0
  208. data/vendor/golang.org/x/oauth2/LICENSE +27 -0
  209. data/vendor/golang.org/x/oauth2/README.md +36 -0
  210. data/vendor/golang.org/x/oauth2/go.mod +9 -0
  211. data/vendor/golang.org/x/oauth2/go.sum +361 -0
  212. data/vendor/golang.org/x/oauth2/internal/client_appengine.go +14 -0
  213. data/vendor/golang.org/x/oauth2/internal/doc.go +6 -0
  214. data/vendor/golang.org/x/oauth2/internal/oauth2.go +37 -0
  215. data/vendor/golang.org/x/oauth2/internal/token.go +294 -0
  216. data/vendor/golang.org/x/oauth2/internal/transport.go +33 -0
  217. data/vendor/golang.org/x/oauth2/oauth2.go +381 -0
  218. data/vendor/golang.org/x/oauth2/token.go +178 -0
  219. data/vendor/golang.org/x/oauth2/transport.go +89 -0
  220. data/vendor/google.golang.org/appengine/LICENSE +202 -0
  221. data/vendor/google.golang.org/appengine/internal/api.go +678 -0
  222. data/vendor/google.golang.org/appengine/internal/api_classic.go +169 -0
  223. data/vendor/google.golang.org/appengine/internal/api_common.go +123 -0
  224. data/vendor/google.golang.org/appengine/internal/app_id.go +28 -0
  225. data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +308 -0
  226. data/vendor/google.golang.org/appengine/internal/base/api_base.proto +33 -0
  227. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +4367 -0
  228. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +551 -0
  229. data/vendor/google.golang.org/appengine/internal/identity.go +55 -0
  230. data/vendor/google.golang.org/appengine/internal/identity_classic.go +61 -0
  231. data/vendor/google.golang.org/appengine/internal/identity_flex.go +11 -0
  232. data/vendor/google.golang.org/appengine/internal/identity_vm.go +134 -0
  233. data/vendor/google.golang.org/appengine/internal/internal.go +110 -0
  234. data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +1313 -0
  235. data/vendor/google.golang.org/appengine/internal/log/log_service.proto +150 -0
  236. data/vendor/google.golang.org/appengine/internal/main.go +16 -0
  237. data/vendor/google.golang.org/appengine/internal/main_common.go +7 -0
  238. data/vendor/google.golang.org/appengine/internal/main_vm.go +69 -0
  239. data/vendor/google.golang.org/appengine/internal/metadata.go +60 -0
  240. data/vendor/google.golang.org/appengine/internal/net.go +56 -0
  241. data/vendor/google.golang.org/appengine/internal/regen.sh +40 -0
  242. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +361 -0
  243. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +44 -0
  244. data/vendor/google.golang.org/appengine/internal/transaction.go +115 -0
  245. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +527 -0
  246. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +64 -0
  247. data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +210 -0
  248. data/vendor/google.golang.org/protobuf/AUTHORS +3 -0
  249. data/vendor/google.golang.org/protobuf/CONTRIBUTORS +3 -0
  250. data/vendor/google.golang.org/protobuf/LICENSE +27 -0
  251. data/vendor/google.golang.org/protobuf/PATENTS +22 -0
  252. data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +773 -0
  253. data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +7 -0
  254. data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +371 -0
  255. data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +538 -0
  256. data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +318 -0
  257. data/vendor/google.golang.org/protobuf/internal/descopts/options.go +29 -0
  258. data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +69 -0
  259. data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +213 -0
  260. data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +241 -0
  261. data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +207 -0
  262. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +665 -0
  263. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +190 -0
  264. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +161 -0
  265. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +373 -0
  266. data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +29 -0
  267. data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +265 -0
  268. data/vendor/google.golang.org/protobuf/internal/errors/errors.go +89 -0
  269. data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +39 -0
  270. data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +12 -0
  271. data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +158 -0
  272. data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +631 -0
  273. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +471 -0
  274. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +704 -0
  275. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +450 -0
  276. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +356 -0
  277. data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +107 -0
  278. data/vendor/google.golang.org/protobuf/internal/filetype/build.go +297 -0
  279. data/vendor/google.golang.org/protobuf/internal/flags/flags.go +24 -0
  280. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +9 -0
  281. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +9 -0
  282. data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +34 -0
  283. data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +106 -0
  284. data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +829 -0
  285. data/vendor/google.golang.org/protobuf/internal/genid/doc.go +11 -0
  286. data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +34 -0
  287. data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +19 -0
  288. data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +31 -0
  289. data/vendor/google.golang.org/protobuf/internal/genid/goname.go +25 -0
  290. data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +16 -0
  291. data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +31 -0
  292. data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +116 -0
  293. data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +34 -0
  294. data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +184 -0
  295. data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +13 -0
  296. data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +175 -0
  297. data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +177 -0
  298. data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +141 -0
  299. data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +223 -0
  300. data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +830 -0
  301. data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +5637 -0
  302. data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +388 -0
  303. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +37 -0
  304. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +11 -0
  305. data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +217 -0
  306. data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +123 -0
  307. data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +209 -0
  308. data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +557 -0
  309. data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +17 -0
  310. data/vendor/google.golang.org/protobuf/internal/impl/convert.go +496 -0
  311. data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +141 -0
  312. data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +121 -0
  313. data/vendor/google.golang.org/protobuf/internal/impl/decode.go +276 -0
  314. data/vendor/google.golang.org/protobuf/internal/impl/encode.go +201 -0
  315. data/vendor/google.golang.org/protobuf/internal/impl/enum.go +21 -0
  316. data/vendor/google.golang.org/protobuf/internal/impl/extension.go +156 -0
  317. data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +219 -0
  318. data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +92 -0
  319. data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +176 -0
  320. data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +81 -0
  321. data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +558 -0
  322. data/vendor/google.golang.org/protobuf/internal/impl/merge.go +176 -0
  323. data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +209 -0
  324. data/vendor/google.golang.org/protobuf/internal/impl/message.go +276 -0
  325. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +465 -0
  326. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +543 -0
  327. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +249 -0
  328. data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +178 -0
  329. data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +174 -0
  330. data/vendor/google.golang.org/protobuf/internal/impl/validate.go +576 -0
  331. data/vendor/google.golang.org/protobuf/internal/impl/weak.go +74 -0
  332. data/vendor/google.golang.org/protobuf/internal/order/order.go +89 -0
  333. data/vendor/google.golang.org/protobuf/internal/order/range.go +115 -0
  334. data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +29 -0
  335. data/vendor/google.golang.org/protobuf/internal/set/ints.go +58 -0
  336. data/vendor/google.golang.org/protobuf/internal/strs/strings.go +196 -0
  337. data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +27 -0
  338. data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +94 -0
  339. data/vendor/google.golang.org/protobuf/internal/version/version.go +79 -0
  340. data/vendor/google.golang.org/protobuf/proto/checkinit.go +71 -0
  341. data/vendor/google.golang.org/protobuf/proto/decode.go +278 -0
  342. data/vendor/google.golang.org/protobuf/proto/decode_gen.go +603 -0
  343. data/vendor/google.golang.org/protobuf/proto/doc.go +94 -0
  344. data/vendor/google.golang.org/protobuf/proto/encode.go +319 -0
  345. data/vendor/google.golang.org/protobuf/proto/encode_gen.go +97 -0
  346. data/vendor/google.golang.org/protobuf/proto/equal.go +167 -0
  347. data/vendor/google.golang.org/protobuf/proto/extension.go +92 -0
  348. data/vendor/google.golang.org/protobuf/proto/merge.go +139 -0
  349. data/vendor/google.golang.org/protobuf/proto/messageset.go +93 -0
  350. data/vendor/google.golang.org/protobuf/proto/proto.go +43 -0
  351. data/vendor/google.golang.org/protobuf/proto/proto_methods.go +19 -0
  352. data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +19 -0
  353. data/vendor/google.golang.org/protobuf/proto/reset.go +43 -0
  354. data/vendor/google.golang.org/protobuf/proto/size.go +97 -0
  355. data/vendor/google.golang.org/protobuf/proto/size_gen.go +55 -0
  356. data/vendor/google.golang.org/protobuf/proto/wrappers.go +29 -0
  357. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +276 -0
  358. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +248 -0
  359. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +286 -0
  360. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +374 -0
  361. data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +252 -0
  362. data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +77 -0
  363. data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +504 -0
  364. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +128 -0
  365. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +461 -0
  366. data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +665 -0
  367. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +285 -0
  368. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +59 -0
  369. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +411 -0
  370. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +98 -0
  371. data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +869 -0
  372. data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +15 -0
  373. data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +167 -0
  374. data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +44 -0
  375. data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +56 -0
  376. data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +4039 -0
  377. data/vendor/modules.txt +79 -0
  378. metadata +495 -0
@@ -0,0 +1,107 @@
1
+ // Copyright 2019 The Go Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+
5
+ package filedesc
6
+
7
+ import (
8
+ "google.golang.org/protobuf/internal/descopts"
9
+ "google.golang.org/protobuf/internal/pragma"
10
+ pref "google.golang.org/protobuf/reflect/protoreflect"
11
+ )
12
+
13
+ var (
14
+ emptyNames = new(Names)
15
+ emptyEnumRanges = new(EnumRanges)
16
+ emptyFieldRanges = new(FieldRanges)
17
+ emptyFieldNumbers = new(FieldNumbers)
18
+ emptySourceLocations = new(SourceLocations)
19
+
20
+ emptyFiles = new(FileImports)
21
+ emptyMessages = new(Messages)
22
+ emptyFields = new(Fields)
23
+ emptyOneofs = new(Oneofs)
24
+ emptyEnums = new(Enums)
25
+ emptyEnumValues = new(EnumValues)
26
+ emptyExtensions = new(Extensions)
27
+ emptyServices = new(Services)
28
+ )
29
+
30
+ // PlaceholderFile is a placeholder, representing only the file path.
31
+ type PlaceholderFile string
32
+
33
+ func (f PlaceholderFile) ParentFile() pref.FileDescriptor { return f }
34
+ func (f PlaceholderFile) Parent() pref.Descriptor { return nil }
35
+ func (f PlaceholderFile) Index() int { return 0 }
36
+ func (f PlaceholderFile) Syntax() pref.Syntax { return 0 }
37
+ func (f PlaceholderFile) Name() pref.Name { return "" }
38
+ func (f PlaceholderFile) FullName() pref.FullName { return "" }
39
+ func (f PlaceholderFile) IsPlaceholder() bool { return true }
40
+ func (f PlaceholderFile) Options() pref.ProtoMessage { return descopts.File }
41
+ func (f PlaceholderFile) Path() string { return string(f) }
42
+ func (f PlaceholderFile) Package() pref.FullName { return "" }
43
+ func (f PlaceholderFile) Imports() pref.FileImports { return emptyFiles }
44
+ func (f PlaceholderFile) Messages() pref.MessageDescriptors { return emptyMessages }
45
+ func (f PlaceholderFile) Enums() pref.EnumDescriptors { return emptyEnums }
46
+ func (f PlaceholderFile) Extensions() pref.ExtensionDescriptors { return emptyExtensions }
47
+ func (f PlaceholderFile) Services() pref.ServiceDescriptors { return emptyServices }
48
+ func (f PlaceholderFile) SourceLocations() pref.SourceLocations { return emptySourceLocations }
49
+ func (f PlaceholderFile) ProtoType(pref.FileDescriptor) { return }
50
+ func (f PlaceholderFile) ProtoInternal(pragma.DoNotImplement) { return }
51
+
52
+ // PlaceholderEnum is a placeholder, representing only the full name.
53
+ type PlaceholderEnum pref.FullName
54
+
55
+ func (e PlaceholderEnum) ParentFile() pref.FileDescriptor { return nil }
56
+ func (e PlaceholderEnum) Parent() pref.Descriptor { return nil }
57
+ func (e PlaceholderEnum) Index() int { return 0 }
58
+ func (e PlaceholderEnum) Syntax() pref.Syntax { return 0 }
59
+ func (e PlaceholderEnum) Name() pref.Name { return pref.FullName(e).Name() }
60
+ func (e PlaceholderEnum) FullName() pref.FullName { return pref.FullName(e) }
61
+ func (e PlaceholderEnum) IsPlaceholder() bool { return true }
62
+ func (e PlaceholderEnum) Options() pref.ProtoMessage { return descopts.Enum }
63
+ func (e PlaceholderEnum) Values() pref.EnumValueDescriptors { return emptyEnumValues }
64
+ func (e PlaceholderEnum) ReservedNames() pref.Names { return emptyNames }
65
+ func (e PlaceholderEnum) ReservedRanges() pref.EnumRanges { return emptyEnumRanges }
66
+ func (e PlaceholderEnum) ProtoType(pref.EnumDescriptor) { return }
67
+ func (e PlaceholderEnum) ProtoInternal(pragma.DoNotImplement) { return }
68
+
69
+ // PlaceholderEnumValue is a placeholder, representing only the full name.
70
+ type PlaceholderEnumValue pref.FullName
71
+
72
+ func (e PlaceholderEnumValue) ParentFile() pref.FileDescriptor { return nil }
73
+ func (e PlaceholderEnumValue) Parent() pref.Descriptor { return nil }
74
+ func (e PlaceholderEnumValue) Index() int { return 0 }
75
+ func (e PlaceholderEnumValue) Syntax() pref.Syntax { return 0 }
76
+ func (e PlaceholderEnumValue) Name() pref.Name { return pref.FullName(e).Name() }
77
+ func (e PlaceholderEnumValue) FullName() pref.FullName { return pref.FullName(e) }
78
+ func (e PlaceholderEnumValue) IsPlaceholder() bool { return true }
79
+ func (e PlaceholderEnumValue) Options() pref.ProtoMessage { return descopts.EnumValue }
80
+ func (e PlaceholderEnumValue) Number() pref.EnumNumber { return 0 }
81
+ func (e PlaceholderEnumValue) ProtoType(pref.EnumValueDescriptor) { return }
82
+ func (e PlaceholderEnumValue) ProtoInternal(pragma.DoNotImplement) { return }
83
+
84
+ // PlaceholderMessage is a placeholder, representing only the full name.
85
+ type PlaceholderMessage pref.FullName
86
+
87
+ func (m PlaceholderMessage) ParentFile() pref.FileDescriptor { return nil }
88
+ func (m PlaceholderMessage) Parent() pref.Descriptor { return nil }
89
+ func (m PlaceholderMessage) Index() int { return 0 }
90
+ func (m PlaceholderMessage) Syntax() pref.Syntax { return 0 }
91
+ func (m PlaceholderMessage) Name() pref.Name { return pref.FullName(m).Name() }
92
+ func (m PlaceholderMessage) FullName() pref.FullName { return pref.FullName(m) }
93
+ func (m PlaceholderMessage) IsPlaceholder() bool { return true }
94
+ func (m PlaceholderMessage) Options() pref.ProtoMessage { return descopts.Message }
95
+ func (m PlaceholderMessage) IsMapEntry() bool { return false }
96
+ func (m PlaceholderMessage) Fields() pref.FieldDescriptors { return emptyFields }
97
+ func (m PlaceholderMessage) Oneofs() pref.OneofDescriptors { return emptyOneofs }
98
+ func (m PlaceholderMessage) ReservedNames() pref.Names { return emptyNames }
99
+ func (m PlaceholderMessage) ReservedRanges() pref.FieldRanges { return emptyFieldRanges }
100
+ func (m PlaceholderMessage) RequiredNumbers() pref.FieldNumbers { return emptyFieldNumbers }
101
+ func (m PlaceholderMessage) ExtensionRanges() pref.FieldRanges { return emptyFieldRanges }
102
+ func (m PlaceholderMessage) ExtensionRangeOptions(int) pref.ProtoMessage { panic("index out of range") }
103
+ func (m PlaceholderMessage) Messages() pref.MessageDescriptors { return emptyMessages }
104
+ func (m PlaceholderMessage) Enums() pref.EnumDescriptors { return emptyEnums }
105
+ func (m PlaceholderMessage) Extensions() pref.ExtensionDescriptors { return emptyExtensions }
106
+ func (m PlaceholderMessage) ProtoType(pref.MessageDescriptor) { return }
107
+ func (m PlaceholderMessage) ProtoInternal(pragma.DoNotImplement) { return }
@@ -0,0 +1,297 @@
1
+ // Copyright 2019 The Go Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+
5
+ // Package filetype provides functionality for wrapping descriptors
6
+ // with Go type information.
7
+ package filetype
8
+
9
+ import (
10
+ "reflect"
11
+
12
+ "google.golang.org/protobuf/internal/descopts"
13
+ fdesc "google.golang.org/protobuf/internal/filedesc"
14
+ pimpl "google.golang.org/protobuf/internal/impl"
15
+ pref "google.golang.org/protobuf/reflect/protoreflect"
16
+ preg "google.golang.org/protobuf/reflect/protoregistry"
17
+ )
18
+
19
+ // Builder constructs type descriptors from a raw file descriptor
20
+ // and associated Go types for each enum and message declaration.
21
+ //
22
+ //
23
+ // Flattened Ordering
24
+ //
25
+ // The protobuf type system represents declarations as a tree. Certain nodes in
26
+ // the tree require us to either associate it with a concrete Go type or to
27
+ // resolve a dependency, which is information that must be provided separately
28
+ // since it cannot be derived from the file descriptor alone.
29
+ //
30
+ // However, representing a tree as Go literals is difficult to simply do in a
31
+ // space and time efficient way. Thus, we store them as a flattened list of
32
+ // objects where the serialization order from the tree-based form is important.
33
+ //
34
+ // The "flattened ordering" is defined as a tree traversal of all enum, message,
35
+ // extension, and service declarations using the following algorithm:
36
+ //
37
+ // def VisitFileDecls(fd):
38
+ // for e in fd.Enums: yield e
39
+ // for m in fd.Messages: yield m
40
+ // for x in fd.Extensions: yield x
41
+ // for s in fd.Services: yield s
42
+ // for m in fd.Messages: yield from VisitMessageDecls(m)
43
+ //
44
+ // def VisitMessageDecls(md):
45
+ // for e in md.Enums: yield e
46
+ // for m in md.Messages: yield m
47
+ // for x in md.Extensions: yield x
48
+ // for m in md.Messages: yield from VisitMessageDecls(m)
49
+ //
50
+ // The traversal starts at the root file descriptor and yields each direct
51
+ // declaration within each node before traversing into sub-declarations
52
+ // that children themselves may have.
53
+ type Builder struct {
54
+ // File is the underlying file descriptor builder.
55
+ File fdesc.Builder
56
+
57
+ // GoTypes is a unique set of the Go types for all declarations and
58
+ // dependencies. Each type is represented as a zero value of the Go type.
59
+ //
60
+ // Declarations are Go types generated for enums and messages directly
61
+ // declared (not publicly imported) in the proto source file.
62
+ // Messages for map entries are accounted for, but represented by nil.
63
+ // Enum declarations in "flattened ordering" come first, followed by
64
+ // message declarations in "flattened ordering".
65
+ //
66
+ // Dependencies are Go types for enums or messages referenced by
67
+ // message fields (excluding weak fields), for parent extended messages of
68
+ // extension fields, for enums or messages referenced by extension fields,
69
+ // and for input and output messages referenced by service methods.
70
+ // Dependencies must come after declarations, but the ordering of
71
+ // dependencies themselves is unspecified.
72
+ GoTypes []interface{}
73
+
74
+ // DependencyIndexes is an ordered list of indexes into GoTypes for the
75
+ // dependencies of messages, extensions, or services.
76
+ //
77
+ // There are 5 sub-lists in "flattened ordering" concatenated back-to-back:
78
+ // 0. Message field dependencies: list of the enum or message type
79
+ // referred to by every message field.
80
+ // 1. Extension field targets: list of the extended parent message of
81
+ // every extension.
82
+ // 2. Extension field dependencies: list of the enum or message type
83
+ // referred to by every extension field.
84
+ // 3. Service method inputs: list of the input message type
85
+ // referred to by every service method.
86
+ // 4. Service method outputs: list of the output message type
87
+ // referred to by every service method.
88
+ //
89
+ // The offset into DependencyIndexes for the start of each sub-list
90
+ // is appended to the end in reverse order.
91
+ DependencyIndexes []int32
92
+
93
+ // EnumInfos is a list of enum infos in "flattened ordering".
94
+ EnumInfos []pimpl.EnumInfo
95
+
96
+ // MessageInfos is a list of message infos in "flattened ordering".
97
+ // If provided, the GoType and PBType for each element is populated.
98
+ //
99
+ // Requirement: len(MessageInfos) == len(Build.Messages)
100
+ MessageInfos []pimpl.MessageInfo
101
+
102
+ // ExtensionInfos is a list of extension infos in "flattened ordering".
103
+ // Each element is initialized and registered with the protoregistry package.
104
+ //
105
+ // Requirement: len(LegacyExtensions) == len(Build.Extensions)
106
+ ExtensionInfos []pimpl.ExtensionInfo
107
+
108
+ // TypeRegistry is the registry to register each type descriptor.
109
+ // If nil, it uses protoregistry.GlobalTypes.
110
+ TypeRegistry interface {
111
+ RegisterMessage(pref.MessageType) error
112
+ RegisterEnum(pref.EnumType) error
113
+ RegisterExtension(pref.ExtensionType) error
114
+ }
115
+ }
116
+
117
+ // Out is the output of the builder.
118
+ type Out struct {
119
+ File pref.FileDescriptor
120
+ }
121
+
122
+ func (tb Builder) Build() (out Out) {
123
+ // Replace the resolver with one that resolves dependencies by index,
124
+ // which is faster and more reliable than relying on the global registry.
125
+ if tb.File.FileRegistry == nil {
126
+ tb.File.FileRegistry = preg.GlobalFiles
127
+ }
128
+ tb.File.FileRegistry = &resolverByIndex{
129
+ goTypes: tb.GoTypes,
130
+ depIdxs: tb.DependencyIndexes,
131
+ fileRegistry: tb.File.FileRegistry,
132
+ }
133
+
134
+ // Initialize registry if unpopulated.
135
+ if tb.TypeRegistry == nil {
136
+ tb.TypeRegistry = preg.GlobalTypes
137
+ }
138
+
139
+ fbOut := tb.File.Build()
140
+ out.File = fbOut.File
141
+
142
+ // Process enums.
143
+ enumGoTypes := tb.GoTypes[:len(fbOut.Enums)]
144
+ if len(tb.EnumInfos) != len(fbOut.Enums) {
145
+ panic("mismatching enum lengths")
146
+ }
147
+ if len(fbOut.Enums) > 0 {
148
+ for i := range fbOut.Enums {
149
+ tb.EnumInfos[i] = pimpl.EnumInfo{
150
+ GoReflectType: reflect.TypeOf(enumGoTypes[i]),
151
+ Desc: &fbOut.Enums[i],
152
+ }
153
+ // Register enum types.
154
+ if err := tb.TypeRegistry.RegisterEnum(&tb.EnumInfos[i]); err != nil {
155
+ panic(err)
156
+ }
157
+ }
158
+ }
159
+
160
+ // Process messages.
161
+ messageGoTypes := tb.GoTypes[len(fbOut.Enums):][:len(fbOut.Messages)]
162
+ if len(tb.MessageInfos) != len(fbOut.Messages) {
163
+ panic("mismatching message lengths")
164
+ }
165
+ if len(fbOut.Messages) > 0 {
166
+ for i := range fbOut.Messages {
167
+ if messageGoTypes[i] == nil {
168
+ continue // skip map entry
169
+ }
170
+
171
+ tb.MessageInfos[i].GoReflectType = reflect.TypeOf(messageGoTypes[i])
172
+ tb.MessageInfos[i].Desc = &fbOut.Messages[i]
173
+
174
+ // Register message types.
175
+ if err := tb.TypeRegistry.RegisterMessage(&tb.MessageInfos[i]); err != nil {
176
+ panic(err)
177
+ }
178
+ }
179
+
180
+ // As a special-case for descriptor.proto,
181
+ // locally register concrete message type for the options.
182
+ if out.File.Path() == "google/protobuf/descriptor.proto" && out.File.Package() == "google.protobuf" {
183
+ for i := range fbOut.Messages {
184
+ switch fbOut.Messages[i].Name() {
185
+ case "FileOptions":
186
+ descopts.File = messageGoTypes[i].(pref.ProtoMessage)
187
+ case "EnumOptions":
188
+ descopts.Enum = messageGoTypes[i].(pref.ProtoMessage)
189
+ case "EnumValueOptions":
190
+ descopts.EnumValue = messageGoTypes[i].(pref.ProtoMessage)
191
+ case "MessageOptions":
192
+ descopts.Message = messageGoTypes[i].(pref.ProtoMessage)
193
+ case "FieldOptions":
194
+ descopts.Field = messageGoTypes[i].(pref.ProtoMessage)
195
+ case "OneofOptions":
196
+ descopts.Oneof = messageGoTypes[i].(pref.ProtoMessage)
197
+ case "ExtensionRangeOptions":
198
+ descopts.ExtensionRange = messageGoTypes[i].(pref.ProtoMessage)
199
+ case "ServiceOptions":
200
+ descopts.Service = messageGoTypes[i].(pref.ProtoMessage)
201
+ case "MethodOptions":
202
+ descopts.Method = messageGoTypes[i].(pref.ProtoMessage)
203
+ }
204
+ }
205
+ }
206
+ }
207
+
208
+ // Process extensions.
209
+ if len(tb.ExtensionInfos) != len(fbOut.Extensions) {
210
+ panic("mismatching extension lengths")
211
+ }
212
+ var depIdx int32
213
+ for i := range fbOut.Extensions {
214
+ // For enum and message kinds, determine the referent Go type so
215
+ // that we can construct their constructors.
216
+ const listExtDeps = 2
217
+ var goType reflect.Type
218
+ switch fbOut.Extensions[i].L1.Kind {
219
+ case pref.EnumKind:
220
+ j := depIdxs.Get(tb.DependencyIndexes, listExtDeps, depIdx)
221
+ goType = reflect.TypeOf(tb.GoTypes[j])
222
+ depIdx++
223
+ case pref.MessageKind, pref.GroupKind:
224
+ j := depIdxs.Get(tb.DependencyIndexes, listExtDeps, depIdx)
225
+ goType = reflect.TypeOf(tb.GoTypes[j])
226
+ depIdx++
227
+ default:
228
+ goType = goTypeForPBKind[fbOut.Extensions[i].L1.Kind]
229
+ }
230
+ if fbOut.Extensions[i].IsList() {
231
+ goType = reflect.SliceOf(goType)
232
+ }
233
+
234
+ pimpl.InitExtensionInfo(&tb.ExtensionInfos[i], &fbOut.Extensions[i], goType)
235
+
236
+ // Register extension types.
237
+ if err := tb.TypeRegistry.RegisterExtension(&tb.ExtensionInfos[i]); err != nil {
238
+ panic(err)
239
+ }
240
+ }
241
+
242
+ return out
243
+ }
244
+
245
+ var goTypeForPBKind = map[pref.Kind]reflect.Type{
246
+ pref.BoolKind: reflect.TypeOf(bool(false)),
247
+ pref.Int32Kind: reflect.TypeOf(int32(0)),
248
+ pref.Sint32Kind: reflect.TypeOf(int32(0)),
249
+ pref.Sfixed32Kind: reflect.TypeOf(int32(0)),
250
+ pref.Int64Kind: reflect.TypeOf(int64(0)),
251
+ pref.Sint64Kind: reflect.TypeOf(int64(0)),
252
+ pref.Sfixed64Kind: reflect.TypeOf(int64(0)),
253
+ pref.Uint32Kind: reflect.TypeOf(uint32(0)),
254
+ pref.Fixed32Kind: reflect.TypeOf(uint32(0)),
255
+ pref.Uint64Kind: reflect.TypeOf(uint64(0)),
256
+ pref.Fixed64Kind: reflect.TypeOf(uint64(0)),
257
+ pref.FloatKind: reflect.TypeOf(float32(0)),
258
+ pref.DoubleKind: reflect.TypeOf(float64(0)),
259
+ pref.StringKind: reflect.TypeOf(string("")),
260
+ pref.BytesKind: reflect.TypeOf([]byte(nil)),
261
+ }
262
+
263
+ type depIdxs []int32
264
+
265
+ // Get retrieves the jth element of the ith sub-list.
266
+ func (x depIdxs) Get(i, j int32) int32 {
267
+ return x[x[int32(len(x))-i-1]+j]
268
+ }
269
+
270
+ type (
271
+ resolverByIndex struct {
272
+ goTypes []interface{}
273
+ depIdxs depIdxs
274
+ fileRegistry
275
+ }
276
+ fileRegistry interface {
277
+ FindFileByPath(string) (pref.FileDescriptor, error)
278
+ FindDescriptorByName(pref.FullName) (pref.Descriptor, error)
279
+ RegisterFile(pref.FileDescriptor) error
280
+ }
281
+ )
282
+
283
+ func (r *resolverByIndex) FindEnumByIndex(i, j int32, es []fdesc.Enum, ms []fdesc.Message) pref.EnumDescriptor {
284
+ if depIdx := int(r.depIdxs.Get(i, j)); int(depIdx) < len(es)+len(ms) {
285
+ return &es[depIdx]
286
+ } else {
287
+ return pimpl.Export{}.EnumDescriptorOf(r.goTypes[depIdx])
288
+ }
289
+ }
290
+
291
+ func (r *resolverByIndex) FindMessageByIndex(i, j int32, es []fdesc.Enum, ms []fdesc.Message) pref.MessageDescriptor {
292
+ if depIdx := int(r.depIdxs.Get(i, j)); depIdx < len(es)+len(ms) {
293
+ return &ms[depIdx-len(es)]
294
+ } else {
295
+ return pimpl.Export{}.MessageDescriptorOf(r.goTypes[depIdx])
296
+ }
297
+ }
@@ -0,0 +1,24 @@
1
+ // Copyright 2018 The Go Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+
5
+ // Package flags provides a set of flags controlled by build tags.
6
+ package flags
7
+
8
+ // ProtoLegacy specifies whether to enable support for legacy functionality
9
+ // such as MessageSets, weak fields, and various other obscure behavior
10
+ // that is necessary to maintain backwards compatibility with proto1 or
11
+ // the pre-release variants of proto2 and proto3.
12
+ //
13
+ // This is disabled by default unless built with the "protolegacy" tag.
14
+ //
15
+ // WARNING: The compatibility agreement covers nothing provided by this flag.
16
+ // As such, functionality may suddenly be removed or changed at our discretion.
17
+ const ProtoLegacy = protoLegacy
18
+
19
+ // LazyUnmarshalExtensions specifies whether to lazily unmarshal extensions.
20
+ //
21
+ // Lazy extension unmarshaling validates the contents of message-valued
22
+ // extension fields at unmarshal time, but defers creating the message
23
+ // structure until the extension is first accessed.
24
+ const LazyUnmarshalExtensions = ProtoLegacy
@@ -0,0 +1,9 @@
1
+ // Copyright 2018 The Go Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+
5
+ // +build !protolegacy
6
+
7
+ package flags
8
+
9
+ const protoLegacy = false
@@ -0,0 +1,9 @@
1
+ // Copyright 2018 The Go Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+
5
+ // +build protolegacy
6
+
7
+ package flags
8
+
9
+ const protoLegacy = true