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,176 +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
- package impl
6
-
7
- import (
8
- "fmt"
9
- "reflect"
10
-
11
- "google.golang.org/protobuf/proto"
12
- pref "google.golang.org/protobuf/reflect/protoreflect"
13
- piface "google.golang.org/protobuf/runtime/protoiface"
14
- )
15
-
16
- type mergeOptions struct{}
17
-
18
- func (o mergeOptions) Merge(dst, src proto.Message) {
19
- proto.Merge(dst, src)
20
- }
21
-
22
- // merge is protoreflect.Methods.Merge.
23
- func (mi *MessageInfo) merge(in piface.MergeInput) piface.MergeOutput {
24
- dp, ok := mi.getPointer(in.Destination)
25
- if !ok {
26
- return piface.MergeOutput{}
27
- }
28
- sp, ok := mi.getPointer(in.Source)
29
- if !ok {
30
- return piface.MergeOutput{}
31
- }
32
- mi.mergePointer(dp, sp, mergeOptions{})
33
- return piface.MergeOutput{Flags: piface.MergeComplete}
34
- }
35
-
36
- func (mi *MessageInfo) mergePointer(dst, src pointer, opts mergeOptions) {
37
- mi.init()
38
- if dst.IsNil() {
39
- panic(fmt.Sprintf("invalid value: merging into nil message"))
40
- }
41
- if src.IsNil() {
42
- return
43
- }
44
- for _, f := range mi.orderedCoderFields {
45
- if f.funcs.merge == nil {
46
- continue
47
- }
48
- sfptr := src.Apply(f.offset)
49
- if f.isPointer && sfptr.Elem().IsNil() {
50
- continue
51
- }
52
- f.funcs.merge(dst.Apply(f.offset), sfptr, f, opts)
53
- }
54
- if mi.extensionOffset.IsValid() {
55
- sext := src.Apply(mi.extensionOffset).Extensions()
56
- dext := dst.Apply(mi.extensionOffset).Extensions()
57
- if *dext == nil {
58
- *dext = make(map[int32]ExtensionField)
59
- }
60
- for num, sx := range *sext {
61
- xt := sx.Type()
62
- xi := getExtensionFieldInfo(xt)
63
- if xi.funcs.merge == nil {
64
- continue
65
- }
66
- dx := (*dext)[num]
67
- var dv pref.Value
68
- if dx.Type() == sx.Type() {
69
- dv = dx.Value()
70
- }
71
- if !dv.IsValid() && xi.unmarshalNeedsValue {
72
- dv = xt.New()
73
- }
74
- dv = xi.funcs.merge(dv, sx.Value(), opts)
75
- dx.Set(sx.Type(), dv)
76
- (*dext)[num] = dx
77
- }
78
- }
79
- if mi.unknownOffset.IsValid() {
80
- su := mi.getUnknownBytes(src)
81
- if su != nil && len(*su) > 0 {
82
- du := mi.mutableUnknownBytes(dst)
83
- *du = append(*du, *su...)
84
- }
85
- }
86
- }
87
-
88
- func mergeScalarValue(dst, src pref.Value, opts mergeOptions) pref.Value {
89
- return src
90
- }
91
-
92
- func mergeBytesValue(dst, src pref.Value, opts mergeOptions) pref.Value {
93
- return pref.ValueOfBytes(append(emptyBuf[:], src.Bytes()...))
94
- }
95
-
96
- func mergeListValue(dst, src pref.Value, opts mergeOptions) pref.Value {
97
- dstl := dst.List()
98
- srcl := src.List()
99
- for i, llen := 0, srcl.Len(); i < llen; i++ {
100
- dstl.Append(srcl.Get(i))
101
- }
102
- return dst
103
- }
104
-
105
- func mergeBytesListValue(dst, src pref.Value, opts mergeOptions) pref.Value {
106
- dstl := dst.List()
107
- srcl := src.List()
108
- for i, llen := 0, srcl.Len(); i < llen; i++ {
109
- sb := srcl.Get(i).Bytes()
110
- db := append(emptyBuf[:], sb...)
111
- dstl.Append(pref.ValueOfBytes(db))
112
- }
113
- return dst
114
- }
115
-
116
- func mergeMessageListValue(dst, src pref.Value, opts mergeOptions) pref.Value {
117
- dstl := dst.List()
118
- srcl := src.List()
119
- for i, llen := 0, srcl.Len(); i < llen; i++ {
120
- sm := srcl.Get(i).Message()
121
- dm := proto.Clone(sm.Interface()).ProtoReflect()
122
- dstl.Append(pref.ValueOfMessage(dm))
123
- }
124
- return dst
125
- }
126
-
127
- func mergeMessageValue(dst, src pref.Value, opts mergeOptions) pref.Value {
128
- opts.Merge(dst.Message().Interface(), src.Message().Interface())
129
- return dst
130
- }
131
-
132
- func mergeMessage(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {
133
- if f.mi != nil {
134
- if dst.Elem().IsNil() {
135
- dst.SetPointer(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem())))
136
- }
137
- f.mi.mergePointer(dst.Elem(), src.Elem(), opts)
138
- } else {
139
- dm := dst.AsValueOf(f.ft).Elem()
140
- sm := src.AsValueOf(f.ft).Elem()
141
- if dm.IsNil() {
142
- dm.Set(reflect.New(f.ft.Elem()))
143
- }
144
- opts.Merge(asMessage(dm), asMessage(sm))
145
- }
146
- }
147
-
148
- func mergeMessageSlice(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {
149
- for _, sp := range src.PointerSlice() {
150
- dm := reflect.New(f.ft.Elem().Elem())
151
- if f.mi != nil {
152
- f.mi.mergePointer(pointerOfValue(dm), sp, opts)
153
- } else {
154
- opts.Merge(asMessage(dm), asMessage(sp.AsValueOf(f.ft.Elem().Elem())))
155
- }
156
- dst.AppendPointerSlice(pointerOfValue(dm))
157
- }
158
- }
159
-
160
- func mergeBytes(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
161
- *dst.Bytes() = append(emptyBuf[:], *src.Bytes()...)
162
- }
163
-
164
- func mergeBytesNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
165
- v := *src.Bytes()
166
- if len(v) > 0 {
167
- *dst.Bytes() = append(emptyBuf[:], v...)
168
- }
169
- }
170
-
171
- func mergeBytesSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
172
- ds := dst.BytesSlice()
173
- for _, v := range *src.BytesSlice() {
174
- *ds = append(*ds, append(emptyBuf[:], v...))
175
- }
176
- }
@@ -1,209 +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
- // Code generated by generate-types. DO NOT EDIT.
6
-
7
- package impl
8
-
9
- import ()
10
-
11
- func mergeBool(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
12
- *dst.Bool() = *src.Bool()
13
- }
14
-
15
- func mergeBoolNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
16
- v := *src.Bool()
17
- if v != false {
18
- *dst.Bool() = v
19
- }
20
- }
21
-
22
- func mergeBoolPtr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
23
- p := *src.BoolPtr()
24
- if p != nil {
25
- v := *p
26
- *dst.BoolPtr() = &v
27
- }
28
- }
29
-
30
- func mergeBoolSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
31
- ds := dst.BoolSlice()
32
- ss := src.BoolSlice()
33
- *ds = append(*ds, *ss...)
34
- }
35
-
36
- func mergeInt32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
37
- *dst.Int32() = *src.Int32()
38
- }
39
-
40
- func mergeInt32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
41
- v := *src.Int32()
42
- if v != 0 {
43
- *dst.Int32() = v
44
- }
45
- }
46
-
47
- func mergeInt32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
48
- p := *src.Int32Ptr()
49
- if p != nil {
50
- v := *p
51
- *dst.Int32Ptr() = &v
52
- }
53
- }
54
-
55
- func mergeInt32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
56
- ds := dst.Int32Slice()
57
- ss := src.Int32Slice()
58
- *ds = append(*ds, *ss...)
59
- }
60
-
61
- func mergeUint32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
62
- *dst.Uint32() = *src.Uint32()
63
- }
64
-
65
- func mergeUint32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
66
- v := *src.Uint32()
67
- if v != 0 {
68
- *dst.Uint32() = v
69
- }
70
- }
71
-
72
- func mergeUint32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
73
- p := *src.Uint32Ptr()
74
- if p != nil {
75
- v := *p
76
- *dst.Uint32Ptr() = &v
77
- }
78
- }
79
-
80
- func mergeUint32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
81
- ds := dst.Uint32Slice()
82
- ss := src.Uint32Slice()
83
- *ds = append(*ds, *ss...)
84
- }
85
-
86
- func mergeInt64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
87
- *dst.Int64() = *src.Int64()
88
- }
89
-
90
- func mergeInt64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
91
- v := *src.Int64()
92
- if v != 0 {
93
- *dst.Int64() = v
94
- }
95
- }
96
-
97
- func mergeInt64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
98
- p := *src.Int64Ptr()
99
- if p != nil {
100
- v := *p
101
- *dst.Int64Ptr() = &v
102
- }
103
- }
104
-
105
- func mergeInt64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
106
- ds := dst.Int64Slice()
107
- ss := src.Int64Slice()
108
- *ds = append(*ds, *ss...)
109
- }
110
-
111
- func mergeUint64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
112
- *dst.Uint64() = *src.Uint64()
113
- }
114
-
115
- func mergeUint64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
116
- v := *src.Uint64()
117
- if v != 0 {
118
- *dst.Uint64() = v
119
- }
120
- }
121
-
122
- func mergeUint64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
123
- p := *src.Uint64Ptr()
124
- if p != nil {
125
- v := *p
126
- *dst.Uint64Ptr() = &v
127
- }
128
- }
129
-
130
- func mergeUint64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
131
- ds := dst.Uint64Slice()
132
- ss := src.Uint64Slice()
133
- *ds = append(*ds, *ss...)
134
- }
135
-
136
- func mergeFloat32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
137
- *dst.Float32() = *src.Float32()
138
- }
139
-
140
- func mergeFloat32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
141
- v := *src.Float32()
142
- if v != 0 {
143
- *dst.Float32() = v
144
- }
145
- }
146
-
147
- func mergeFloat32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
148
- p := *src.Float32Ptr()
149
- if p != nil {
150
- v := *p
151
- *dst.Float32Ptr() = &v
152
- }
153
- }
154
-
155
- func mergeFloat32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
156
- ds := dst.Float32Slice()
157
- ss := src.Float32Slice()
158
- *ds = append(*ds, *ss...)
159
- }
160
-
161
- func mergeFloat64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
162
- *dst.Float64() = *src.Float64()
163
- }
164
-
165
- func mergeFloat64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
166
- v := *src.Float64()
167
- if v != 0 {
168
- *dst.Float64() = v
169
- }
170
- }
171
-
172
- func mergeFloat64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
173
- p := *src.Float64Ptr()
174
- if p != nil {
175
- v := *p
176
- *dst.Float64Ptr() = &v
177
- }
178
- }
179
-
180
- func mergeFloat64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
181
- ds := dst.Float64Slice()
182
- ss := src.Float64Slice()
183
- *ds = append(*ds, *ss...)
184
- }
185
-
186
- func mergeString(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
187
- *dst.String() = *src.String()
188
- }
189
-
190
- func mergeStringNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
191
- v := *src.String()
192
- if v != "" {
193
- *dst.String() = v
194
- }
195
- }
196
-
197
- func mergeStringPtr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
198
- p := *src.StringPtr()
199
- if p != nil {
200
- v := *p
201
- *dst.StringPtr() = &v
202
- }
203
- }
204
-
205
- func mergeStringSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
206
- ds := dst.StringSlice()
207
- ss := src.StringSlice()
208
- *ds = append(*ds, *ss...)
209
- }
@@ -1,276 +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 impl
6
-
7
- import (
8
- "fmt"
9
- "reflect"
10
- "strconv"
11
- "strings"
12
- "sync"
13
- "sync/atomic"
14
-
15
- "google.golang.org/protobuf/internal/genid"
16
- "google.golang.org/protobuf/reflect/protoreflect"
17
- pref "google.golang.org/protobuf/reflect/protoreflect"
18
- preg "google.golang.org/protobuf/reflect/protoregistry"
19
- )
20
-
21
- // MessageInfo provides protobuf related functionality for a given Go type
22
- // that represents a message. A given instance of MessageInfo is tied to
23
- // exactly one Go type, which must be a pointer to a struct type.
24
- //
25
- // The exported fields must be populated before any methods are called
26
- // and cannot be mutated after set.
27
- type MessageInfo struct {
28
- // GoReflectType is the underlying message Go type and must be populated.
29
- GoReflectType reflect.Type // pointer to struct
30
-
31
- // Desc is the underlying message descriptor type and must be populated.
32
- Desc pref.MessageDescriptor
33
-
34
- // Exporter must be provided in a purego environment in order to provide
35
- // access to unexported fields.
36
- Exporter exporter
37
-
38
- // OneofWrappers is list of pointers to oneof wrapper struct types.
39
- OneofWrappers []interface{}
40
-
41
- initMu sync.Mutex // protects all unexported fields
42
- initDone uint32
43
-
44
- reflectMessageInfo // for reflection implementation
45
- coderMessageInfo // for fast-path method implementations
46
- }
47
-
48
- // exporter is a function that returns a reference to the ith field of v,
49
- // where v is a pointer to a struct. It returns nil if it does not support
50
- // exporting the requested field (e.g., already exported).
51
- type exporter func(v interface{}, i int) interface{}
52
-
53
- // getMessageInfo returns the MessageInfo for any message type that
54
- // is generated by our implementation of protoc-gen-go (for v2 and on).
55
- // If it is unable to obtain a MessageInfo, it returns nil.
56
- func getMessageInfo(mt reflect.Type) *MessageInfo {
57
- m, ok := reflect.Zero(mt).Interface().(pref.ProtoMessage)
58
- if !ok {
59
- return nil
60
- }
61
- mr, ok := m.ProtoReflect().(interface{ ProtoMessageInfo() *MessageInfo })
62
- if !ok {
63
- return nil
64
- }
65
- return mr.ProtoMessageInfo()
66
- }
67
-
68
- func (mi *MessageInfo) init() {
69
- // This function is called in the hot path. Inline the sync.Once logic,
70
- // since allocating a closure for Once.Do is expensive.
71
- // Keep init small to ensure that it can be inlined.
72
- if atomic.LoadUint32(&mi.initDone) == 0 {
73
- mi.initOnce()
74
- }
75
- }
76
-
77
- func (mi *MessageInfo) initOnce() {
78
- mi.initMu.Lock()
79
- defer mi.initMu.Unlock()
80
- if mi.initDone == 1 {
81
- return
82
- }
83
-
84
- t := mi.GoReflectType
85
- if t.Kind() != reflect.Ptr && t.Elem().Kind() != reflect.Struct {
86
- panic(fmt.Sprintf("got %v, want *struct kind", t))
87
- }
88
- t = t.Elem()
89
-
90
- si := mi.makeStructInfo(t)
91
- mi.makeReflectFuncs(t, si)
92
- mi.makeCoderMethods(t, si)
93
-
94
- atomic.StoreUint32(&mi.initDone, 1)
95
- }
96
-
97
- // getPointer returns the pointer for a message, which should be of
98
- // the type of the MessageInfo. If the message is of a different type,
99
- // it returns ok==false.
100
- func (mi *MessageInfo) getPointer(m pref.Message) (p pointer, ok bool) {
101
- switch m := m.(type) {
102
- case *messageState:
103
- return m.pointer(), m.messageInfo() == mi
104
- case *messageReflectWrapper:
105
- return m.pointer(), m.messageInfo() == mi
106
- }
107
- return pointer{}, false
108
- }
109
-
110
- type (
111
- SizeCache = int32
112
- WeakFields = map[int32]protoreflect.ProtoMessage
113
- UnknownFields = unknownFieldsA // TODO: switch to unknownFieldsB
114
- unknownFieldsA = []byte
115
- unknownFieldsB = *[]byte
116
- ExtensionFields = map[int32]ExtensionField
117
- )
118
-
119
- var (
120
- sizecacheType = reflect.TypeOf(SizeCache(0))
121
- weakFieldsType = reflect.TypeOf(WeakFields(nil))
122
- unknownFieldsAType = reflect.TypeOf(unknownFieldsA(nil))
123
- unknownFieldsBType = reflect.TypeOf(unknownFieldsB(nil))
124
- extensionFieldsType = reflect.TypeOf(ExtensionFields(nil))
125
- )
126
-
127
- type structInfo struct {
128
- sizecacheOffset offset
129
- sizecacheType reflect.Type
130
- weakOffset offset
131
- weakType reflect.Type
132
- unknownOffset offset
133
- unknownType reflect.Type
134
- extensionOffset offset
135
- extensionType reflect.Type
136
-
137
- fieldsByNumber map[pref.FieldNumber]reflect.StructField
138
- oneofsByName map[pref.Name]reflect.StructField
139
- oneofWrappersByType map[reflect.Type]pref.FieldNumber
140
- oneofWrappersByNumber map[pref.FieldNumber]reflect.Type
141
- }
142
-
143
- func (mi *MessageInfo) makeStructInfo(t reflect.Type) structInfo {
144
- si := structInfo{
145
- sizecacheOffset: invalidOffset,
146
- weakOffset: invalidOffset,
147
- unknownOffset: invalidOffset,
148
- extensionOffset: invalidOffset,
149
-
150
- fieldsByNumber: map[pref.FieldNumber]reflect.StructField{},
151
- oneofsByName: map[pref.Name]reflect.StructField{},
152
- oneofWrappersByType: map[reflect.Type]pref.FieldNumber{},
153
- oneofWrappersByNumber: map[pref.FieldNumber]reflect.Type{},
154
- }
155
-
156
- fieldLoop:
157
- for i := 0; i < t.NumField(); i++ {
158
- switch f := t.Field(i); f.Name {
159
- case genid.SizeCache_goname, genid.SizeCacheA_goname:
160
- if f.Type == sizecacheType {
161
- si.sizecacheOffset = offsetOf(f, mi.Exporter)
162
- si.sizecacheType = f.Type
163
- }
164
- case genid.WeakFields_goname, genid.WeakFieldsA_goname:
165
- if f.Type == weakFieldsType {
166
- si.weakOffset = offsetOf(f, mi.Exporter)
167
- si.weakType = f.Type
168
- }
169
- case genid.UnknownFields_goname, genid.UnknownFieldsA_goname:
170
- if f.Type == unknownFieldsAType || f.Type == unknownFieldsBType {
171
- si.unknownOffset = offsetOf(f, mi.Exporter)
172
- si.unknownType = f.Type
173
- }
174
- case genid.ExtensionFields_goname, genid.ExtensionFieldsA_goname, genid.ExtensionFieldsB_goname:
175
- if f.Type == extensionFieldsType {
176
- si.extensionOffset = offsetOf(f, mi.Exporter)
177
- si.extensionType = f.Type
178
- }
179
- default:
180
- for _, s := range strings.Split(f.Tag.Get("protobuf"), ",") {
181
- if len(s) > 0 && strings.Trim(s, "0123456789") == "" {
182
- n, _ := strconv.ParseUint(s, 10, 64)
183
- si.fieldsByNumber[pref.FieldNumber(n)] = f
184
- continue fieldLoop
185
- }
186
- }
187
- if s := f.Tag.Get("protobuf_oneof"); len(s) > 0 {
188
- si.oneofsByName[pref.Name(s)] = f
189
- continue fieldLoop
190
- }
191
- }
192
- }
193
-
194
- // Derive a mapping of oneof wrappers to fields.
195
- oneofWrappers := mi.OneofWrappers
196
- for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} {
197
- if fn, ok := reflect.PtrTo(t).MethodByName(method); ok {
198
- for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) {
199
- if vs, ok := v.Interface().([]interface{}); ok {
200
- oneofWrappers = vs
201
- }
202
- }
203
- }
204
- }
205
- for _, v := range oneofWrappers {
206
- tf := reflect.TypeOf(v).Elem()
207
- f := tf.Field(0)
208
- for _, s := range strings.Split(f.Tag.Get("protobuf"), ",") {
209
- if len(s) > 0 && strings.Trim(s, "0123456789") == "" {
210
- n, _ := strconv.ParseUint(s, 10, 64)
211
- si.oneofWrappersByType[tf] = pref.FieldNumber(n)
212
- si.oneofWrappersByNumber[pref.FieldNumber(n)] = tf
213
- break
214
- }
215
- }
216
- }
217
-
218
- return si
219
- }
220
-
221
- func (mi *MessageInfo) New() protoreflect.Message {
222
- return mi.MessageOf(reflect.New(mi.GoReflectType.Elem()).Interface())
223
- }
224
- func (mi *MessageInfo) Zero() protoreflect.Message {
225
- return mi.MessageOf(reflect.Zero(mi.GoReflectType).Interface())
226
- }
227
- func (mi *MessageInfo) Descriptor() protoreflect.MessageDescriptor {
228
- return mi.Desc
229
- }
230
- func (mi *MessageInfo) Enum(i int) protoreflect.EnumType {
231
- mi.init()
232
- fd := mi.Desc.Fields().Get(i)
233
- return Export{}.EnumTypeOf(mi.fieldTypes[fd.Number()])
234
- }
235
- func (mi *MessageInfo) Message(i int) protoreflect.MessageType {
236
- mi.init()
237
- fd := mi.Desc.Fields().Get(i)
238
- switch {
239
- case fd.IsWeak():
240
- mt, _ := preg.GlobalTypes.FindMessageByName(fd.Message().FullName())
241
- return mt
242
- case fd.IsMap():
243
- return mapEntryType{fd.Message(), mi.fieldTypes[fd.Number()]}
244
- default:
245
- return Export{}.MessageTypeOf(mi.fieldTypes[fd.Number()])
246
- }
247
- }
248
-
249
- type mapEntryType struct {
250
- desc protoreflect.MessageDescriptor
251
- valType interface{} // zero value of enum or message type
252
- }
253
-
254
- func (mt mapEntryType) New() protoreflect.Message {
255
- return nil
256
- }
257
- func (mt mapEntryType) Zero() protoreflect.Message {
258
- return nil
259
- }
260
- func (mt mapEntryType) Descriptor() protoreflect.MessageDescriptor {
261
- return mt.desc
262
- }
263
- func (mt mapEntryType) Enum(i int) protoreflect.EnumType {
264
- fd := mt.desc.Fields().Get(i)
265
- if fd.Enum() == nil {
266
- return nil
267
- }
268
- return Export{}.EnumTypeOf(mt.valType)
269
- }
270
- func (mt mapEntryType) Message(i int) protoreflect.MessageType {
271
- fd := mt.desc.Fields().Get(i)
272
- if fd.Message() == nil {
273
- return nil
274
- }
275
- return Export{}.MessageTypeOf(mt.valType)
276
- }