planetscale 0.2.0 → 0.3.3

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 (365) hide show
  1. checksums.yaml +4 -4
  2. data/.buildkite/pipeline.yml +21 -0
  3. data/.github/workflows/ci.yml +9 -1
  4. data/.github/workflows/gem-push.yml +9 -2
  5. data/.licenses/go/github.com/matoous/go-nanoid/v2.dep.yml +34 -0
  6. data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +56 -3
  7. data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +205 -172
  8. data/.licenses/go/go.uber.org/zap/buffer.dep.yml +1 -1
  9. data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +1 -1
  10. data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +1 -1
  11. data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +1 -1
  12. data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +1 -1
  13. data/.licenses/go/go.uber.org/zap.dep.yml +1 -1
  14. data/README.md +11 -8
  15. data/controller.go +24 -26
  16. data/go.mod +4 -3
  17. data/go.sum +42 -27
  18. data/lib/generators/planetscale/install_generator.rb +8 -6
  19. data/lib/planetscale/version.rb +1 -1
  20. data/lib/planetscale.rb +14 -15
  21. data/planetscale.gemspec +2 -2
  22. data/proxy/planetscale-darwin.h +1 -1
  23. data/proxy/planetscale-darwin.so +0 -0
  24. data/proxy/planetscale-linux.h +1 -1
  25. data/proxy/planetscale-linux.so +0 -0
  26. data/proxy.go +1 -5
  27. metadata +6 -342
  28. data/vendor/github.com/armon/circbuf/.gitignore +0 -22
  29. data/vendor/github.com/armon/circbuf/LICENSE +0 -20
  30. data/vendor/github.com/armon/circbuf/README.md +0 -28
  31. data/vendor/github.com/armon/circbuf/circbuf.go +0 -92
  32. data/vendor/github.com/armon/circbuf/go.mod +0 -1
  33. data/vendor/github.com/golang/protobuf/AUTHORS +0 -3
  34. data/vendor/github.com/golang/protobuf/CONTRIBUTORS +0 -3
  35. data/vendor/github.com/golang/protobuf/LICENSE +0 -28
  36. data/vendor/github.com/golang/protobuf/proto/buffer.go +0 -324
  37. data/vendor/github.com/golang/protobuf/proto/defaults.go +0 -63
  38. data/vendor/github.com/golang/protobuf/proto/deprecated.go +0 -113
  39. data/vendor/github.com/golang/protobuf/proto/discard.go +0 -58
  40. data/vendor/github.com/golang/protobuf/proto/extensions.go +0 -356
  41. data/vendor/github.com/golang/protobuf/proto/properties.go +0 -306
  42. data/vendor/github.com/golang/protobuf/proto/proto.go +0 -167
  43. data/vendor/github.com/golang/protobuf/proto/registry.go +0 -317
  44. data/vendor/github.com/golang/protobuf/proto/text_decode.go +0 -801
  45. data/vendor/github.com/golang/protobuf/proto/text_encode.go +0 -560
  46. data/vendor/github.com/golang/protobuf/proto/wire.go +0 -78
  47. data/vendor/github.com/golang/protobuf/proto/wrappers.go +0 -34
  48. data/vendor/github.com/gorilla/mux/AUTHORS +0 -8
  49. data/vendor/github.com/gorilla/mux/LICENSE +0 -27
  50. data/vendor/github.com/gorilla/mux/README.md +0 -805
  51. data/vendor/github.com/gorilla/mux/doc.go +0 -306
  52. data/vendor/github.com/gorilla/mux/go.mod +0 -3
  53. data/vendor/github.com/gorilla/mux/middleware.go +0 -74
  54. data/vendor/github.com/gorilla/mux/mux.go +0 -606
  55. data/vendor/github.com/gorilla/mux/regexp.go +0 -388
  56. data/vendor/github.com/gorilla/mux/route.go +0 -736
  57. data/vendor/github.com/gorilla/mux/test_helpers.go +0 -19
  58. data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +0 -363
  59. data/vendor/github.com/hashicorp/go-cleanhttp/README.md +0 -30
  60. data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +0 -58
  61. data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +0 -20
  62. data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +0 -3
  63. data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +0 -48
  64. data/vendor/github.com/mitchellh/go-homedir/LICENSE +0 -21
  65. data/vendor/github.com/mitchellh/go-homedir/README.md +0 -14
  66. data/vendor/github.com/mitchellh/go-homedir/go.mod +0 -1
  67. data/vendor/github.com/mitchellh/go-homedir/homedir.go +0 -167
  68. data/vendor/github.com/pkg/errors/.gitignore +0 -24
  69. data/vendor/github.com/pkg/errors/.travis.yml +0 -10
  70. data/vendor/github.com/pkg/errors/LICENSE +0 -23
  71. data/vendor/github.com/pkg/errors/Makefile +0 -44
  72. data/vendor/github.com/pkg/errors/README.md +0 -59
  73. data/vendor/github.com/pkg/errors/appveyor.yml +0 -32
  74. data/vendor/github.com/pkg/errors/errors.go +0 -288
  75. data/vendor/github.com/pkg/errors/go113.go +0 -38
  76. data/vendor/github.com/pkg/errors/stack.go +0 -177
  77. data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +0 -139
  78. data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +0 -258
  79. data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +0 -142
  80. data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +0 -305
  81. data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +0 -131
  82. data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +0 -368
  83. data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +0 -78
  84. data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +0 -163
  85. data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +0 -467
  86. data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +0 -73
  87. data/vendor/go.uber.org/atomic/.codecov.yml +0 -19
  88. data/vendor/go.uber.org/atomic/.gitignore +0 -12
  89. data/vendor/go.uber.org/atomic/.travis.yml +0 -27
  90. data/vendor/go.uber.org/atomic/CHANGELOG.md +0 -76
  91. data/vendor/go.uber.org/atomic/LICENSE.txt +0 -19
  92. data/vendor/go.uber.org/atomic/Makefile +0 -78
  93. data/vendor/go.uber.org/atomic/README.md +0 -63
  94. data/vendor/go.uber.org/atomic/bool.go +0 -81
  95. data/vendor/go.uber.org/atomic/bool_ext.go +0 -53
  96. data/vendor/go.uber.org/atomic/doc.go +0 -23
  97. data/vendor/go.uber.org/atomic/duration.go +0 -82
  98. data/vendor/go.uber.org/atomic/duration_ext.go +0 -40
  99. data/vendor/go.uber.org/atomic/error.go +0 -51
  100. data/vendor/go.uber.org/atomic/error_ext.go +0 -39
  101. data/vendor/go.uber.org/atomic/float64.go +0 -76
  102. data/vendor/go.uber.org/atomic/float64_ext.go +0 -47
  103. data/vendor/go.uber.org/atomic/gen.go +0 -26
  104. data/vendor/go.uber.org/atomic/go.mod +0 -8
  105. data/vendor/go.uber.org/atomic/go.sum +0 -9
  106. data/vendor/go.uber.org/atomic/int32.go +0 -102
  107. data/vendor/go.uber.org/atomic/int64.go +0 -102
  108. data/vendor/go.uber.org/atomic/nocmp.go +0 -35
  109. data/vendor/go.uber.org/atomic/string.go +0 -54
  110. data/vendor/go.uber.org/atomic/string_ext.go +0 -43
  111. data/vendor/go.uber.org/atomic/uint32.go +0 -102
  112. data/vendor/go.uber.org/atomic/uint64.go +0 -102
  113. data/vendor/go.uber.org/atomic/value.go +0 -31
  114. data/vendor/go.uber.org/multierr/.codecov.yml +0 -15
  115. data/vendor/go.uber.org/multierr/.gitignore +0 -4
  116. data/vendor/go.uber.org/multierr/.travis.yml +0 -23
  117. data/vendor/go.uber.org/multierr/CHANGELOG.md +0 -60
  118. data/vendor/go.uber.org/multierr/LICENSE.txt +0 -19
  119. data/vendor/go.uber.org/multierr/Makefile +0 -42
  120. data/vendor/go.uber.org/multierr/README.md +0 -23
  121. data/vendor/go.uber.org/multierr/error.go +0 -449
  122. data/vendor/go.uber.org/multierr/glide.yaml +0 -8
  123. data/vendor/go.uber.org/multierr/go.mod +0 -8
  124. data/vendor/go.uber.org/multierr/go.sum +0 -11
  125. data/vendor/go.uber.org/multierr/go113.go +0 -52
  126. data/vendor/go.uber.org/zap/.codecov.yml +0 -17
  127. data/vendor/go.uber.org/zap/.gitignore +0 -32
  128. data/vendor/go.uber.org/zap/.readme.tmpl +0 -109
  129. data/vendor/go.uber.org/zap/.travis.yml +0 -23
  130. data/vendor/go.uber.org/zap/CHANGELOG.md +0 -432
  131. data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +0 -75
  132. data/vendor/go.uber.org/zap/CONTRIBUTING.md +0 -81
  133. data/vendor/go.uber.org/zap/FAQ.md +0 -156
  134. data/vendor/go.uber.org/zap/LICENSE.txt +0 -19
  135. data/vendor/go.uber.org/zap/Makefile +0 -63
  136. data/vendor/go.uber.org/zap/README.md +0 -134
  137. data/vendor/go.uber.org/zap/array.go +0 -320
  138. data/vendor/go.uber.org/zap/buffer/buffer.go +0 -123
  139. data/vendor/go.uber.org/zap/buffer/pool.go +0 -49
  140. data/vendor/go.uber.org/zap/checklicense.sh +0 -17
  141. data/vendor/go.uber.org/zap/config.go +0 -264
  142. data/vendor/go.uber.org/zap/doc.go +0 -113
  143. data/vendor/go.uber.org/zap/encoder.go +0 -79
  144. data/vendor/go.uber.org/zap/error.go +0 -80
  145. data/vendor/go.uber.org/zap/field.go +0 -539
  146. data/vendor/go.uber.org/zap/flag.go +0 -39
  147. data/vendor/go.uber.org/zap/glide.yaml +0 -34
  148. data/vendor/go.uber.org/zap/global.go +0 -168
  149. data/vendor/go.uber.org/zap/global_go112.go +0 -26
  150. data/vendor/go.uber.org/zap/global_prego112.go +0 -26
  151. data/vendor/go.uber.org/zap/go.mod +0 -13
  152. data/vendor/go.uber.org/zap/go.sum +0 -56
  153. data/vendor/go.uber.org/zap/http_handler.go +0 -81
  154. data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +0 -31
  155. data/vendor/go.uber.org/zap/internal/color/color.go +0 -44
  156. data/vendor/go.uber.org/zap/internal/exit/exit.go +0 -64
  157. data/vendor/go.uber.org/zap/level.go +0 -132
  158. data/vendor/go.uber.org/zap/logger.go +0 -344
  159. data/vendor/go.uber.org/zap/options.go +0 -140
  160. data/vendor/go.uber.org/zap/sink.go +0 -161
  161. data/vendor/go.uber.org/zap/stacktrace.go +0 -85
  162. data/vendor/go.uber.org/zap/sugar.go +0 -304
  163. data/vendor/go.uber.org/zap/time.go +0 -27
  164. data/vendor/go.uber.org/zap/writer.go +0 -99
  165. data/vendor/go.uber.org/zap/zapcore/console_encoder.go +0 -161
  166. data/vendor/go.uber.org/zap/zapcore/core.go +0 -113
  167. data/vendor/go.uber.org/zap/zapcore/doc.go +0 -24
  168. data/vendor/go.uber.org/zap/zapcore/encoder.go +0 -443
  169. data/vendor/go.uber.org/zap/zapcore/entry.go +0 -264
  170. data/vendor/go.uber.org/zap/zapcore/error.go +0 -115
  171. data/vendor/go.uber.org/zap/zapcore/field.go +0 -227
  172. data/vendor/go.uber.org/zap/zapcore/hook.go +0 -68
  173. data/vendor/go.uber.org/zap/zapcore/increase_level.go +0 -66
  174. data/vendor/go.uber.org/zap/zapcore/json_encoder.go +0 -534
  175. data/vendor/go.uber.org/zap/zapcore/level.go +0 -175
  176. data/vendor/go.uber.org/zap/zapcore/level_strings.go +0 -46
  177. data/vendor/go.uber.org/zap/zapcore/marshaler.go +0 -61
  178. data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +0 -179
  179. data/vendor/go.uber.org/zap/zapcore/sampler.go +0 -208
  180. data/vendor/go.uber.org/zap/zapcore/tee.go +0 -81
  181. data/vendor/go.uber.org/zap/zapcore/write_syncer.go +0 -123
  182. data/vendor/golang.org/x/net/AUTHORS +0 -3
  183. data/vendor/golang.org/x/net/CONTRIBUTORS +0 -3
  184. data/vendor/golang.org/x/net/LICENSE +0 -27
  185. data/vendor/golang.org/x/net/PATENTS +0 -22
  186. data/vendor/golang.org/x/net/context/context.go +0 -56
  187. data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +0 -71
  188. data/vendor/golang.org/x/net/context/go17.go +0 -73
  189. data/vendor/golang.org/x/net/context/go19.go +0 -21
  190. data/vendor/golang.org/x/net/context/pre_go17.go +0 -301
  191. data/vendor/golang.org/x/net/context/pre_go19.go +0 -110
  192. data/vendor/golang.org/x/oauth2/.travis.yml +0 -13
  193. data/vendor/golang.org/x/oauth2/AUTHORS +0 -3
  194. data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +0 -26
  195. data/vendor/golang.org/x/oauth2/CONTRIBUTORS +0 -3
  196. data/vendor/golang.org/x/oauth2/LICENSE +0 -27
  197. data/vendor/golang.org/x/oauth2/README.md +0 -36
  198. data/vendor/golang.org/x/oauth2/go.mod +0 -9
  199. data/vendor/golang.org/x/oauth2/go.sum +0 -361
  200. data/vendor/golang.org/x/oauth2/internal/client_appengine.go +0 -14
  201. data/vendor/golang.org/x/oauth2/internal/doc.go +0 -6
  202. data/vendor/golang.org/x/oauth2/internal/oauth2.go +0 -37
  203. data/vendor/golang.org/x/oauth2/internal/token.go +0 -294
  204. data/vendor/golang.org/x/oauth2/internal/transport.go +0 -33
  205. data/vendor/golang.org/x/oauth2/oauth2.go +0 -381
  206. data/vendor/golang.org/x/oauth2/token.go +0 -178
  207. data/vendor/golang.org/x/oauth2/transport.go +0 -89
  208. data/vendor/google.golang.org/appengine/LICENSE +0 -202
  209. data/vendor/google.golang.org/appengine/internal/api.go +0 -678
  210. data/vendor/google.golang.org/appengine/internal/api_classic.go +0 -169
  211. data/vendor/google.golang.org/appengine/internal/api_common.go +0 -123
  212. data/vendor/google.golang.org/appengine/internal/app_id.go +0 -28
  213. data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +0 -308
  214. data/vendor/google.golang.org/appengine/internal/base/api_base.proto +0 -33
  215. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +0 -4367
  216. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +0 -551
  217. data/vendor/google.golang.org/appengine/internal/identity.go +0 -55
  218. data/vendor/google.golang.org/appengine/internal/identity_classic.go +0 -61
  219. data/vendor/google.golang.org/appengine/internal/identity_flex.go +0 -11
  220. data/vendor/google.golang.org/appengine/internal/identity_vm.go +0 -134
  221. data/vendor/google.golang.org/appengine/internal/internal.go +0 -110
  222. data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +0 -1313
  223. data/vendor/google.golang.org/appengine/internal/log/log_service.proto +0 -150
  224. data/vendor/google.golang.org/appengine/internal/main.go +0 -16
  225. data/vendor/google.golang.org/appengine/internal/main_common.go +0 -7
  226. data/vendor/google.golang.org/appengine/internal/main_vm.go +0 -69
  227. data/vendor/google.golang.org/appengine/internal/metadata.go +0 -60
  228. data/vendor/google.golang.org/appengine/internal/net.go +0 -56
  229. data/vendor/google.golang.org/appengine/internal/regen.sh +0 -40
  230. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +0 -361
  231. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +0 -44
  232. data/vendor/google.golang.org/appengine/internal/transaction.go +0 -115
  233. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +0 -527
  234. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +0 -64
  235. data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +0 -210
  236. data/vendor/google.golang.org/protobuf/AUTHORS +0 -3
  237. data/vendor/google.golang.org/protobuf/CONTRIBUTORS +0 -3
  238. data/vendor/google.golang.org/protobuf/LICENSE +0 -27
  239. data/vendor/google.golang.org/protobuf/PATENTS +0 -22
  240. data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +0 -773
  241. data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +0 -7
  242. data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +0 -371
  243. data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +0 -538
  244. data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +0 -318
  245. data/vendor/google.golang.org/protobuf/internal/descopts/options.go +0 -29
  246. data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +0 -69
  247. data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +0 -213
  248. data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +0 -241
  249. data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +0 -207
  250. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +0 -665
  251. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +0 -190
  252. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +0 -161
  253. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +0 -373
  254. data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +0 -29
  255. data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +0 -265
  256. data/vendor/google.golang.org/protobuf/internal/errors/errors.go +0 -89
  257. data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +0 -39
  258. data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +0 -12
  259. data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +0 -158
  260. data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +0 -631
  261. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +0 -471
  262. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +0 -704
  263. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +0 -450
  264. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +0 -356
  265. data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +0 -107
  266. data/vendor/google.golang.org/protobuf/internal/filetype/build.go +0 -297
  267. data/vendor/google.golang.org/protobuf/internal/flags/flags.go +0 -24
  268. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +0 -9
  269. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +0 -9
  270. data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +0 -34
  271. data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +0 -106
  272. data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +0 -829
  273. data/vendor/google.golang.org/protobuf/internal/genid/doc.go +0 -11
  274. data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +0 -34
  275. data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +0 -19
  276. data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +0 -31
  277. data/vendor/google.golang.org/protobuf/internal/genid/goname.go +0 -25
  278. data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +0 -16
  279. data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +0 -31
  280. data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +0 -116
  281. data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +0 -34
  282. data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +0 -184
  283. data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +0 -13
  284. data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +0 -175
  285. data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +0 -177
  286. data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +0 -141
  287. data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +0 -223
  288. data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +0 -830
  289. data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +0 -5637
  290. data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +0 -388
  291. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +0 -37
  292. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +0 -11
  293. data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +0 -217
  294. data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +0 -123
  295. data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +0 -209
  296. data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +0 -557
  297. data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +0 -17
  298. data/vendor/google.golang.org/protobuf/internal/impl/convert.go +0 -496
  299. data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +0 -141
  300. data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +0 -121
  301. data/vendor/google.golang.org/protobuf/internal/impl/decode.go +0 -276
  302. data/vendor/google.golang.org/protobuf/internal/impl/encode.go +0 -201
  303. data/vendor/google.golang.org/protobuf/internal/impl/enum.go +0 -21
  304. data/vendor/google.golang.org/protobuf/internal/impl/extension.go +0 -156
  305. data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +0 -219
  306. data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +0 -92
  307. data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +0 -176
  308. data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +0 -81
  309. data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +0 -558
  310. data/vendor/google.golang.org/protobuf/internal/impl/merge.go +0 -176
  311. data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +0 -209
  312. data/vendor/google.golang.org/protobuf/internal/impl/message.go +0 -276
  313. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +0 -465
  314. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +0 -543
  315. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +0 -249
  316. data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +0 -178
  317. data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +0 -174
  318. data/vendor/google.golang.org/protobuf/internal/impl/validate.go +0 -576
  319. data/vendor/google.golang.org/protobuf/internal/impl/weak.go +0 -74
  320. data/vendor/google.golang.org/protobuf/internal/order/order.go +0 -89
  321. data/vendor/google.golang.org/protobuf/internal/order/range.go +0 -115
  322. data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +0 -29
  323. data/vendor/google.golang.org/protobuf/internal/set/ints.go +0 -58
  324. data/vendor/google.golang.org/protobuf/internal/strs/strings.go +0 -196
  325. data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +0 -27
  326. data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +0 -94
  327. data/vendor/google.golang.org/protobuf/internal/version/version.go +0 -79
  328. data/vendor/google.golang.org/protobuf/proto/checkinit.go +0 -71
  329. data/vendor/google.golang.org/protobuf/proto/decode.go +0 -278
  330. data/vendor/google.golang.org/protobuf/proto/decode_gen.go +0 -603
  331. data/vendor/google.golang.org/protobuf/proto/doc.go +0 -94
  332. data/vendor/google.golang.org/protobuf/proto/encode.go +0 -319
  333. data/vendor/google.golang.org/protobuf/proto/encode_gen.go +0 -97
  334. data/vendor/google.golang.org/protobuf/proto/equal.go +0 -167
  335. data/vendor/google.golang.org/protobuf/proto/extension.go +0 -92
  336. data/vendor/google.golang.org/protobuf/proto/merge.go +0 -139
  337. data/vendor/google.golang.org/protobuf/proto/messageset.go +0 -93
  338. data/vendor/google.golang.org/protobuf/proto/proto.go +0 -43
  339. data/vendor/google.golang.org/protobuf/proto/proto_methods.go +0 -19
  340. data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +0 -19
  341. data/vendor/google.golang.org/protobuf/proto/reset.go +0 -43
  342. data/vendor/google.golang.org/protobuf/proto/size.go +0 -97
  343. data/vendor/google.golang.org/protobuf/proto/size_gen.go +0 -55
  344. data/vendor/google.golang.org/protobuf/proto/wrappers.go +0 -29
  345. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +0 -276
  346. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +0 -248
  347. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +0 -286
  348. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +0 -374
  349. data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +0 -252
  350. data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +0 -77
  351. data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +0 -504
  352. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +0 -128
  353. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +0 -461
  354. data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +0 -665
  355. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +0 -285
  356. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +0 -59
  357. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +0 -411
  358. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +0 -98
  359. data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +0 -869
  360. data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +0 -15
  361. data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +0 -167
  362. data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +0 -44
  363. data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +0 -56
  364. data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +0 -4039
  365. data/vendor/modules.txt +0 -79
@@ -1,29 +0,0 @@
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 text implements the text format for protocol buffers.
6
- // This package has no semantic understanding for protocol buffers and is only
7
- // a parser and composer for the format.
8
- //
9
- // There is no formal specification for the protobuf text format, as such the
10
- // C++ implementation (see google::protobuf::TextFormat) is the reference
11
- // implementation of the text format.
12
- //
13
- // This package is neither a superset nor a subset of the C++ implementation.
14
- // This implementation permits a more liberal grammar in some cases to be
15
- // backwards compatible with the historical Go implementation.
16
- // Future parsings unique to Go should not be added.
17
- // Some grammars allowed by the C++ implementation are deliberately
18
- // not implemented here because they are considered a bug by the protobuf team
19
- // and should not be replicated.
20
- //
21
- // The Go implementation should implement a sufficient amount of the C++
22
- // grammar such that the default text serialization by C++ can be parsed by Go.
23
- // However, just because the C++ parser accepts some input does not mean that
24
- // the Go implementation should as well.
25
- //
26
- // The text format is almost a superset of JSON except:
27
- // * message keys are not quoted strings, but identifiers
28
- // * the top-level value must be a message without the delimiters
29
- package text
@@ -1,265 +0,0 @@
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 text
6
-
7
- import (
8
- "math"
9
- "math/bits"
10
- "strconv"
11
- "strings"
12
- "unicode/utf8"
13
-
14
- "google.golang.org/protobuf/internal/detrand"
15
- "google.golang.org/protobuf/internal/errors"
16
- )
17
-
18
- // encType represents an encoding type.
19
- type encType uint8
20
-
21
- const (
22
- _ encType = (1 << iota) / 2
23
- name
24
- scalar
25
- messageOpen
26
- messageClose
27
- )
28
-
29
- // Encoder provides methods to write out textproto constructs and values. The user is
30
- // responsible for producing valid sequences of constructs and values.
31
- type Encoder struct {
32
- encoderState
33
-
34
- indent string
35
- delims [2]byte
36
- outputASCII bool
37
- }
38
-
39
- type encoderState struct {
40
- lastType encType
41
- indents []byte
42
- out []byte
43
- }
44
-
45
- // NewEncoder returns an Encoder.
46
- //
47
- // If indent is a non-empty string, it causes every entry in a List or Message
48
- // to be preceded by the indent and trailed by a newline.
49
- //
50
- // If delims is not the zero value, it controls the delimiter characters used
51
- // for messages (e.g., "{}" vs "<>").
52
- //
53
- // If outputASCII is true, strings will be serialized in such a way that
54
- // multi-byte UTF-8 sequences are escaped. This property ensures that the
55
- // overall output is ASCII (as opposed to UTF-8).
56
- func NewEncoder(indent string, delims [2]byte, outputASCII bool) (*Encoder, error) {
57
- e := &Encoder{}
58
- if len(indent) > 0 {
59
- if strings.Trim(indent, " \t") != "" {
60
- return nil, errors.New("indent may only be composed of space and tab characters")
61
- }
62
- e.indent = indent
63
- }
64
- switch delims {
65
- case [2]byte{0, 0}:
66
- e.delims = [2]byte{'{', '}'}
67
- case [2]byte{'{', '}'}, [2]byte{'<', '>'}:
68
- e.delims = delims
69
- default:
70
- return nil, errors.New("delimiters may only be \"{}\" or \"<>\"")
71
- }
72
- e.outputASCII = outputASCII
73
-
74
- return e, nil
75
- }
76
-
77
- // Bytes returns the content of the written bytes.
78
- func (e *Encoder) Bytes() []byte {
79
- return e.out
80
- }
81
-
82
- // StartMessage writes out the '{' or '<' symbol.
83
- func (e *Encoder) StartMessage() {
84
- e.prepareNext(messageOpen)
85
- e.out = append(e.out, e.delims[0])
86
- }
87
-
88
- // EndMessage writes out the '}' or '>' symbol.
89
- func (e *Encoder) EndMessage() {
90
- e.prepareNext(messageClose)
91
- e.out = append(e.out, e.delims[1])
92
- }
93
-
94
- // WriteName writes out the field name and the separator ':'.
95
- func (e *Encoder) WriteName(s string) {
96
- e.prepareNext(name)
97
- e.out = append(e.out, s...)
98
- e.out = append(e.out, ':')
99
- }
100
-
101
- // WriteBool writes out the given boolean value.
102
- func (e *Encoder) WriteBool(b bool) {
103
- if b {
104
- e.WriteLiteral("true")
105
- } else {
106
- e.WriteLiteral("false")
107
- }
108
- }
109
-
110
- // WriteString writes out the given string value.
111
- func (e *Encoder) WriteString(s string) {
112
- e.prepareNext(scalar)
113
- e.out = appendString(e.out, s, e.outputASCII)
114
- }
115
-
116
- func appendString(out []byte, in string, outputASCII bool) []byte {
117
- out = append(out, '"')
118
- i := indexNeedEscapeInString(in)
119
- in, out = in[i:], append(out, in[:i]...)
120
- for len(in) > 0 {
121
- switch r, n := utf8.DecodeRuneInString(in); {
122
- case r == utf8.RuneError && n == 1:
123
- // We do not report invalid UTF-8 because strings in the text format
124
- // are used to represent both the proto string and bytes type.
125
- r = rune(in[0])
126
- fallthrough
127
- case r < ' ' || r == '"' || r == '\\' || r == 0x7f:
128
- out = append(out, '\\')
129
- switch r {
130
- case '"', '\\':
131
- out = append(out, byte(r))
132
- case '\n':
133
- out = append(out, 'n')
134
- case '\r':
135
- out = append(out, 'r')
136
- case '\t':
137
- out = append(out, 't')
138
- default:
139
- out = append(out, 'x')
140
- out = append(out, "00"[1+(bits.Len32(uint32(r))-1)/4:]...)
141
- out = strconv.AppendUint(out, uint64(r), 16)
142
- }
143
- in = in[n:]
144
- case r >= utf8.RuneSelf && (outputASCII || r <= 0x009f):
145
- out = append(out, '\\')
146
- if r <= math.MaxUint16 {
147
- out = append(out, 'u')
148
- out = append(out, "0000"[1+(bits.Len32(uint32(r))-1)/4:]...)
149
- out = strconv.AppendUint(out, uint64(r), 16)
150
- } else {
151
- out = append(out, 'U')
152
- out = append(out, "00000000"[1+(bits.Len32(uint32(r))-1)/4:]...)
153
- out = strconv.AppendUint(out, uint64(r), 16)
154
- }
155
- in = in[n:]
156
- default:
157
- i := indexNeedEscapeInString(in[n:])
158
- in, out = in[n+i:], append(out, in[:n+i]...)
159
- }
160
- }
161
- out = append(out, '"')
162
- return out
163
- }
164
-
165
- // indexNeedEscapeInString returns the index of the character that needs
166
- // escaping. If no characters need escaping, this returns the input length.
167
- func indexNeedEscapeInString(s string) int {
168
- for i := 0; i < len(s); i++ {
169
- if c := s[i]; c < ' ' || c == '"' || c == '\'' || c == '\\' || c >= 0x7f {
170
- return i
171
- }
172
- }
173
- return len(s)
174
- }
175
-
176
- // WriteFloat writes out the given float value for given bitSize.
177
- func (e *Encoder) WriteFloat(n float64, bitSize int) {
178
- e.prepareNext(scalar)
179
- e.out = appendFloat(e.out, n, bitSize)
180
- }
181
-
182
- func appendFloat(out []byte, n float64, bitSize int) []byte {
183
- switch {
184
- case math.IsNaN(n):
185
- return append(out, "nan"...)
186
- case math.IsInf(n, +1):
187
- return append(out, "inf"...)
188
- case math.IsInf(n, -1):
189
- return append(out, "-inf"...)
190
- default:
191
- return strconv.AppendFloat(out, n, 'g', -1, bitSize)
192
- }
193
- }
194
-
195
- // WriteInt writes out the given signed integer value.
196
- func (e *Encoder) WriteInt(n int64) {
197
- e.prepareNext(scalar)
198
- e.out = append(e.out, strconv.FormatInt(n, 10)...)
199
- }
200
-
201
- // WriteUint writes out the given unsigned integer value.
202
- func (e *Encoder) WriteUint(n uint64) {
203
- e.prepareNext(scalar)
204
- e.out = append(e.out, strconv.FormatUint(n, 10)...)
205
- }
206
-
207
- // WriteLiteral writes out the given string as a literal value without quotes.
208
- // This is used for writing enum literal strings.
209
- func (e *Encoder) WriteLiteral(s string) {
210
- e.prepareNext(scalar)
211
- e.out = append(e.out, s...)
212
- }
213
-
214
- // prepareNext adds possible space and indentation for the next value based
215
- // on last encType and indent option. It also updates e.lastType to next.
216
- func (e *Encoder) prepareNext(next encType) {
217
- defer func() {
218
- e.lastType = next
219
- }()
220
-
221
- // Single line.
222
- if len(e.indent) == 0 {
223
- // Add space after each field before the next one.
224
- if e.lastType&(scalar|messageClose) != 0 && next == name {
225
- e.out = append(e.out, ' ')
226
- // Add a random extra space to make output unstable.
227
- if detrand.Bool() {
228
- e.out = append(e.out, ' ')
229
- }
230
- }
231
- return
232
- }
233
-
234
- // Multi-line.
235
- switch {
236
- case e.lastType == name:
237
- e.out = append(e.out, ' ')
238
- // Add a random extra space after name: to make output unstable.
239
- if detrand.Bool() {
240
- e.out = append(e.out, ' ')
241
- }
242
-
243
- case e.lastType == messageOpen && next != messageClose:
244
- e.indents = append(e.indents, e.indent...)
245
- e.out = append(e.out, '\n')
246
- e.out = append(e.out, e.indents...)
247
-
248
- case e.lastType&(scalar|messageClose) != 0:
249
- if next == messageClose {
250
- e.indents = e.indents[:len(e.indents)-len(e.indent)]
251
- }
252
- e.out = append(e.out, '\n')
253
- e.out = append(e.out, e.indents...)
254
- }
255
- }
256
-
257
- // Snapshot returns the current snapshot for use in Reset.
258
- func (e *Encoder) Snapshot() encoderState {
259
- return e.encoderState
260
- }
261
-
262
- // Reset resets the Encoder to the given encoderState from a Snapshot.
263
- func (e *Encoder) Reset(es encoderState) {
264
- e.encoderState = es
265
- }
@@ -1,89 +0,0 @@
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 errors implements functions to manipulate errors.
6
- package errors
7
-
8
- import (
9
- "errors"
10
- "fmt"
11
-
12
- "google.golang.org/protobuf/internal/detrand"
13
- )
14
-
15
- // Error is a sentinel matching all errors produced by this package.
16
- var Error = errors.New("protobuf error")
17
-
18
- // New formats a string according to the format specifier and arguments and
19
- // returns an error that has a "proto" prefix.
20
- func New(f string, x ...interface{}) error {
21
- return &prefixError{s: format(f, x...)}
22
- }
23
-
24
- type prefixError struct{ s string }
25
-
26
- var prefix = func() string {
27
- // Deliberately introduce instability into the error message string to
28
- // discourage users from performing error string comparisons.
29
- if detrand.Bool() {
30
- return "proto: " // use non-breaking spaces (U+00a0)
31
- } else {
32
- return "proto: " // use regular spaces (U+0020)
33
- }
34
- }()
35
-
36
- func (e *prefixError) Error() string {
37
- return prefix + e.s
38
- }
39
-
40
- func (e *prefixError) Unwrap() error {
41
- return Error
42
- }
43
-
44
- // Wrap returns an error that has a "proto" prefix, the formatted string described
45
- // by the format specifier and arguments, and a suffix of err. The error wraps err.
46
- func Wrap(err error, f string, x ...interface{}) error {
47
- return &wrapError{
48
- s: format(f, x...),
49
- err: err,
50
- }
51
- }
52
-
53
- type wrapError struct {
54
- s string
55
- err error
56
- }
57
-
58
- func (e *wrapError) Error() string {
59
- return format("%v%v: %v", prefix, e.s, e.err)
60
- }
61
-
62
- func (e *wrapError) Unwrap() error {
63
- return e.err
64
- }
65
-
66
- func (e *wrapError) Is(target error) bool {
67
- return target == Error
68
- }
69
-
70
- func format(f string, x ...interface{}) string {
71
- // avoid "proto: " prefix when chaining
72
- for i := 0; i < len(x); i++ {
73
- switch e := x[i].(type) {
74
- case *prefixError:
75
- x[i] = e.s
76
- case *wrapError:
77
- x[i] = format("%v: %v", e.s, e.err)
78
- }
79
- }
80
- return fmt.Sprintf(f, x...)
81
- }
82
-
83
- func InvalidUTF8(name string) error {
84
- return New("field %v contains invalid UTF-8", name)
85
- }
86
-
87
- func RequiredNotSet(name string) error {
88
- return New("required field %v not set", name)
89
- }
@@ -1,39 +0,0 @@
1
- // Copyright 2020 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 !go1.13
6
-
7
- package errors
8
-
9
- import "reflect"
10
-
11
- // Is is a copy of Go 1.13's errors.Is for use with older Go versions.
12
- func Is(err, target error) bool {
13
- if target == nil {
14
- return err == target
15
- }
16
-
17
- isComparable := reflect.TypeOf(target).Comparable()
18
- for {
19
- if isComparable && err == target {
20
- return true
21
- }
22
- if x, ok := err.(interface{ Is(error) bool }); ok && x.Is(target) {
23
- return true
24
- }
25
- if err = unwrap(err); err == nil {
26
- return false
27
- }
28
- }
29
- }
30
-
31
- func unwrap(err error) error {
32
- u, ok := err.(interface {
33
- Unwrap() error
34
- })
35
- if !ok {
36
- return nil
37
- }
38
- return u.Unwrap()
39
- }
@@ -1,12 +0,0 @@
1
- // Copyright 2020 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 go1.13
6
-
7
- package errors
8
-
9
- import "errors"
10
-
11
- // Is is errors.Is.
12
- func Is(err, target error) bool { return errors.Is(err, target) }
@@ -1,158 +0,0 @@
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 provides functionality for constructing descriptors.
6
- //
7
- // The types in this package implement interfaces in the protoreflect package
8
- // related to protobuf descripriptors.
9
- package filedesc
10
-
11
- import (
12
- "google.golang.org/protobuf/encoding/protowire"
13
- "google.golang.org/protobuf/internal/genid"
14
- "google.golang.org/protobuf/reflect/protoreflect"
15
- pref "google.golang.org/protobuf/reflect/protoreflect"
16
- preg "google.golang.org/protobuf/reflect/protoregistry"
17
- )
18
-
19
- // Builder construct a protoreflect.FileDescriptor from the raw descriptor.
20
- type Builder struct {
21
- // GoPackagePath is the Go package path that is invoking this builder.
22
- GoPackagePath string
23
-
24
- // RawDescriptor is the wire-encoded bytes of FileDescriptorProto
25
- // and must be populated.
26
- RawDescriptor []byte
27
-
28
- // NumEnums is the total number of enums declared in the file.
29
- NumEnums int32
30
- // NumMessages is the total number of messages declared in the file.
31
- // It includes the implicit message declarations for map entries.
32
- NumMessages int32
33
- // NumExtensions is the total number of extensions declared in the file.
34
- NumExtensions int32
35
- // NumServices is the total number of services declared in the file.
36
- NumServices int32
37
-
38
- // TypeResolver resolves extension field types for descriptor options.
39
- // If nil, it uses protoregistry.GlobalTypes.
40
- TypeResolver interface {
41
- preg.ExtensionTypeResolver
42
- }
43
-
44
- // FileRegistry is use to lookup file, enum, and message dependencies.
45
- // Once constructed, the file descriptor is registered here.
46
- // If nil, it uses protoregistry.GlobalFiles.
47
- FileRegistry interface {
48
- FindFileByPath(string) (protoreflect.FileDescriptor, error)
49
- FindDescriptorByName(pref.FullName) (pref.Descriptor, error)
50
- RegisterFile(pref.FileDescriptor) error
51
- }
52
- }
53
-
54
- // resolverByIndex is an interface Builder.FileRegistry may implement.
55
- // If so, it permits looking up an enum or message dependency based on the
56
- // sub-list and element index into filetype.Builder.DependencyIndexes.
57
- type resolverByIndex interface {
58
- FindEnumByIndex(int32, int32, []Enum, []Message) pref.EnumDescriptor
59
- FindMessageByIndex(int32, int32, []Enum, []Message) pref.MessageDescriptor
60
- }
61
-
62
- // Indexes of each sub-list in filetype.Builder.DependencyIndexes.
63
- const (
64
- listFieldDeps int32 = iota
65
- listExtTargets
66
- listExtDeps
67
- listMethInDeps
68
- listMethOutDeps
69
- )
70
-
71
- // Out is the output of the Builder.
72
- type Out struct {
73
- File pref.FileDescriptor
74
-
75
- // Enums is all enum descriptors in "flattened ordering".
76
- Enums []Enum
77
- // Messages is all message descriptors in "flattened ordering".
78
- // It includes the implicit message declarations for map entries.
79
- Messages []Message
80
- // Extensions is all extension descriptors in "flattened ordering".
81
- Extensions []Extension
82
- // Service is all service descriptors in "flattened ordering".
83
- Services []Service
84
- }
85
-
86
- // Build constructs a FileDescriptor given the parameters set in Builder.
87
- // It assumes that the inputs are well-formed and panics if any inconsistencies
88
- // are encountered.
89
- //
90
- // If NumEnums+NumMessages+NumExtensions+NumServices is zero,
91
- // then Build automatically derives them from the raw descriptor.
92
- func (db Builder) Build() (out Out) {
93
- // Populate the counts if uninitialized.
94
- if db.NumEnums+db.NumMessages+db.NumExtensions+db.NumServices == 0 {
95
- db.unmarshalCounts(db.RawDescriptor, true)
96
- }
97
-
98
- // Initialize resolvers and registries if unpopulated.
99
- if db.TypeResolver == nil {
100
- db.TypeResolver = preg.GlobalTypes
101
- }
102
- if db.FileRegistry == nil {
103
- db.FileRegistry = preg.GlobalFiles
104
- }
105
-
106
- fd := newRawFile(db)
107
- out.File = fd
108
- out.Enums = fd.allEnums
109
- out.Messages = fd.allMessages
110
- out.Extensions = fd.allExtensions
111
- out.Services = fd.allServices
112
-
113
- if err := db.FileRegistry.RegisterFile(fd); err != nil {
114
- panic(err)
115
- }
116
- return out
117
- }
118
-
119
- // unmarshalCounts counts the number of enum, message, extension, and service
120
- // declarations in the raw message, which is either a FileDescriptorProto
121
- // or a MessageDescriptorProto depending on whether isFile is set.
122
- func (db *Builder) unmarshalCounts(b []byte, isFile bool) {
123
- for len(b) > 0 {
124
- num, typ, n := protowire.ConsumeTag(b)
125
- b = b[n:]
126
- switch typ {
127
- case protowire.BytesType:
128
- v, m := protowire.ConsumeBytes(b)
129
- b = b[m:]
130
- if isFile {
131
- switch num {
132
- case genid.FileDescriptorProto_EnumType_field_number:
133
- db.NumEnums++
134
- case genid.FileDescriptorProto_MessageType_field_number:
135
- db.unmarshalCounts(v, false)
136
- db.NumMessages++
137
- case genid.FileDescriptorProto_Extension_field_number:
138
- db.NumExtensions++
139
- case genid.FileDescriptorProto_Service_field_number:
140
- db.NumServices++
141
- }
142
- } else {
143
- switch num {
144
- case genid.DescriptorProto_EnumType_field_number:
145
- db.NumEnums++
146
- case genid.DescriptorProto_NestedType_field_number:
147
- db.unmarshalCounts(v, false)
148
- db.NumMessages++
149
- case genid.DescriptorProto_Extension_field_number:
150
- db.NumExtensions++
151
- }
152
- }
153
- default:
154
- m := protowire.ConsumeFieldValue(num, typ, b)
155
- b = b[m:]
156
- }
157
- }
158
- }