planetscale 0.3.1 → 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 (368) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +9 -1
  3. data/.github/workflows/gem-push.yml +9 -2
  4. data/.licenses/go/github.com/matoous/go-nanoid/v2.dep.yml +34 -0
  5. data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +1 -1
  6. data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +1 -1
  7. data/.licenses/go/go.uber.org/zap/buffer.dep.yml +1 -1
  8. data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +1 -1
  9. data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +1 -1
  10. data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +1 -1
  11. data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +1 -1
  12. data/.licenses/go/go.uber.org/zap.dep.yml +1 -1
  13. data/README.md +2 -0
  14. data/controller.go +21 -36
  15. data/go.mod +4 -3
  16. data/go.sum +32 -18
  17. data/lib/planetscale/version.rb +1 -1
  18. data/lib/planetscale.rb +2 -3
  19. data/planetscale.gemspec +1 -1
  20. data/proxy/planetscale-darwin.h +1 -1
  21. data/proxy/planetscale-darwin.so +0 -0
  22. data/proxy/planetscale-linux.h +1 -1
  23. data/proxy/planetscale-linux.so +0 -0
  24. data/proxy.go +1 -5
  25. metadata +3 -345
  26. data/vendor/github.com/armon/circbuf/.gitignore +0 -22
  27. data/vendor/github.com/armon/circbuf/LICENSE +0 -20
  28. data/vendor/github.com/armon/circbuf/README.md +0 -28
  29. data/vendor/github.com/armon/circbuf/circbuf.go +0 -92
  30. data/vendor/github.com/armon/circbuf/go.mod +0 -1
  31. data/vendor/github.com/golang/protobuf/AUTHORS +0 -3
  32. data/vendor/github.com/golang/protobuf/CONTRIBUTORS +0 -3
  33. data/vendor/github.com/golang/protobuf/LICENSE +0 -28
  34. data/vendor/github.com/golang/protobuf/proto/buffer.go +0 -324
  35. data/vendor/github.com/golang/protobuf/proto/defaults.go +0 -63
  36. data/vendor/github.com/golang/protobuf/proto/deprecated.go +0 -113
  37. data/vendor/github.com/golang/protobuf/proto/discard.go +0 -58
  38. data/vendor/github.com/golang/protobuf/proto/extensions.go +0 -356
  39. data/vendor/github.com/golang/protobuf/proto/properties.go +0 -306
  40. data/vendor/github.com/golang/protobuf/proto/proto.go +0 -167
  41. data/vendor/github.com/golang/protobuf/proto/registry.go +0 -317
  42. data/vendor/github.com/golang/protobuf/proto/text_decode.go +0 -801
  43. data/vendor/github.com/golang/protobuf/proto/text_encode.go +0 -560
  44. data/vendor/github.com/golang/protobuf/proto/wire.go +0 -78
  45. data/vendor/github.com/golang/protobuf/proto/wrappers.go +0 -34
  46. data/vendor/github.com/gorilla/mux/AUTHORS +0 -8
  47. data/vendor/github.com/gorilla/mux/LICENSE +0 -27
  48. data/vendor/github.com/gorilla/mux/README.md +0 -805
  49. data/vendor/github.com/gorilla/mux/doc.go +0 -306
  50. data/vendor/github.com/gorilla/mux/go.mod +0 -3
  51. data/vendor/github.com/gorilla/mux/middleware.go +0 -74
  52. data/vendor/github.com/gorilla/mux/mux.go +0 -606
  53. data/vendor/github.com/gorilla/mux/regexp.go +0 -388
  54. data/vendor/github.com/gorilla/mux/route.go +0 -736
  55. data/vendor/github.com/gorilla/mux/test_helpers.go +0 -19
  56. data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +0 -363
  57. data/vendor/github.com/hashicorp/go-cleanhttp/README.md +0 -30
  58. data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +0 -58
  59. data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +0 -20
  60. data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +0 -3
  61. data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +0 -48
  62. data/vendor/github.com/mitchellh/go-homedir/LICENSE +0 -21
  63. data/vendor/github.com/mitchellh/go-homedir/README.md +0 -14
  64. data/vendor/github.com/mitchellh/go-homedir/go.mod +0 -1
  65. data/vendor/github.com/mitchellh/go-homedir/homedir.go +0 -167
  66. data/vendor/github.com/pkg/errors/.gitignore +0 -24
  67. data/vendor/github.com/pkg/errors/.travis.yml +0 -10
  68. data/vendor/github.com/pkg/errors/LICENSE +0 -23
  69. data/vendor/github.com/pkg/errors/Makefile +0 -44
  70. data/vendor/github.com/pkg/errors/README.md +0 -59
  71. data/vendor/github.com/pkg/errors/appveyor.yml +0 -32
  72. data/vendor/github.com/pkg/errors/errors.go +0 -288
  73. data/vendor/github.com/pkg/errors/go113.go +0 -38
  74. data/vendor/github.com/pkg/errors/stack.go +0 -177
  75. data/vendor/github.com/planetscale/planetscale-go/LICENSE +0 -202
  76. data/vendor/github.com/planetscale/planetscale-go/planetscale/audit_logs.go +0 -136
  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 -252
  79. data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +0 -166
  80. data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +0 -312
  81. data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +0 -133
  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 -103
  84. data/vendor/github.com/planetscale/planetscale-go/planetscale/regions.go +0 -52
  85. data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +0 -163
  86. data/vendor/github.com/planetscale/sql-proxy/LICENSE +0 -202
  87. data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +0 -476
  88. data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +0 -73
  89. data/vendor/go.uber.org/atomic/.codecov.yml +0 -19
  90. data/vendor/go.uber.org/atomic/.gitignore +0 -12
  91. data/vendor/go.uber.org/atomic/.travis.yml +0 -27
  92. data/vendor/go.uber.org/atomic/CHANGELOG.md +0 -76
  93. data/vendor/go.uber.org/atomic/LICENSE.txt +0 -19
  94. data/vendor/go.uber.org/atomic/Makefile +0 -78
  95. data/vendor/go.uber.org/atomic/README.md +0 -63
  96. data/vendor/go.uber.org/atomic/bool.go +0 -81
  97. data/vendor/go.uber.org/atomic/bool_ext.go +0 -53
  98. data/vendor/go.uber.org/atomic/doc.go +0 -23
  99. data/vendor/go.uber.org/atomic/duration.go +0 -82
  100. data/vendor/go.uber.org/atomic/duration_ext.go +0 -40
  101. data/vendor/go.uber.org/atomic/error.go +0 -51
  102. data/vendor/go.uber.org/atomic/error_ext.go +0 -39
  103. data/vendor/go.uber.org/atomic/float64.go +0 -76
  104. data/vendor/go.uber.org/atomic/float64_ext.go +0 -47
  105. data/vendor/go.uber.org/atomic/gen.go +0 -26
  106. data/vendor/go.uber.org/atomic/go.mod +0 -8
  107. data/vendor/go.uber.org/atomic/go.sum +0 -9
  108. data/vendor/go.uber.org/atomic/int32.go +0 -102
  109. data/vendor/go.uber.org/atomic/int64.go +0 -102
  110. data/vendor/go.uber.org/atomic/nocmp.go +0 -35
  111. data/vendor/go.uber.org/atomic/string.go +0 -54
  112. data/vendor/go.uber.org/atomic/string_ext.go +0 -43
  113. data/vendor/go.uber.org/atomic/uint32.go +0 -102
  114. data/vendor/go.uber.org/atomic/uint64.go +0 -102
  115. data/vendor/go.uber.org/atomic/value.go +0 -31
  116. data/vendor/go.uber.org/multierr/.codecov.yml +0 -15
  117. data/vendor/go.uber.org/multierr/.gitignore +0 -4
  118. data/vendor/go.uber.org/multierr/.travis.yml +0 -23
  119. data/vendor/go.uber.org/multierr/CHANGELOG.md +0 -60
  120. data/vendor/go.uber.org/multierr/LICENSE.txt +0 -19
  121. data/vendor/go.uber.org/multierr/Makefile +0 -42
  122. data/vendor/go.uber.org/multierr/README.md +0 -23
  123. data/vendor/go.uber.org/multierr/error.go +0 -449
  124. data/vendor/go.uber.org/multierr/glide.yaml +0 -8
  125. data/vendor/go.uber.org/multierr/go.mod +0 -8
  126. data/vendor/go.uber.org/multierr/go.sum +0 -11
  127. data/vendor/go.uber.org/multierr/go113.go +0 -52
  128. data/vendor/go.uber.org/zap/.codecov.yml +0 -17
  129. data/vendor/go.uber.org/zap/.gitignore +0 -32
  130. data/vendor/go.uber.org/zap/.readme.tmpl +0 -109
  131. data/vendor/go.uber.org/zap/CHANGELOG.md +0 -492
  132. data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +0 -75
  133. data/vendor/go.uber.org/zap/CONTRIBUTING.md +0 -75
  134. data/vendor/go.uber.org/zap/FAQ.md +0 -164
  135. data/vendor/go.uber.org/zap/LICENSE.txt +0 -19
  136. data/vendor/go.uber.org/zap/Makefile +0 -73
  137. data/vendor/go.uber.org/zap/README.md +0 -134
  138. data/vendor/go.uber.org/zap/array.go +0 -320
  139. data/vendor/go.uber.org/zap/buffer/buffer.go +0 -141
  140. data/vendor/go.uber.org/zap/buffer/pool.go +0 -49
  141. data/vendor/go.uber.org/zap/checklicense.sh +0 -17
  142. data/vendor/go.uber.org/zap/config.go +0 -264
  143. data/vendor/go.uber.org/zap/doc.go +0 -113
  144. data/vendor/go.uber.org/zap/encoder.go +0 -79
  145. data/vendor/go.uber.org/zap/error.go +0 -80
  146. data/vendor/go.uber.org/zap/field.go +0 -549
  147. data/vendor/go.uber.org/zap/flag.go +0 -39
  148. data/vendor/go.uber.org/zap/glide.yaml +0 -34
  149. data/vendor/go.uber.org/zap/global.go +0 -168
  150. data/vendor/go.uber.org/zap/global_go112.go +0 -26
  151. data/vendor/go.uber.org/zap/global_prego112.go +0 -26
  152. data/vendor/go.uber.org/zap/go.mod +0 -14
  153. data/vendor/go.uber.org/zap/go.sum +0 -54
  154. data/vendor/go.uber.org/zap/http_handler.go +0 -132
  155. data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +0 -31
  156. data/vendor/go.uber.org/zap/internal/color/color.go +0 -44
  157. data/vendor/go.uber.org/zap/internal/exit/exit.go +0 -64
  158. data/vendor/go.uber.org/zap/level.go +0 -132
  159. data/vendor/go.uber.org/zap/logger.go +0 -348
  160. data/vendor/go.uber.org/zap/options.go +0 -148
  161. data/vendor/go.uber.org/zap/sink.go +0 -161
  162. data/vendor/go.uber.org/zap/stacktrace.go +0 -85
  163. data/vendor/go.uber.org/zap/sugar.go +0 -315
  164. data/vendor/go.uber.org/zap/time.go +0 -27
  165. data/vendor/go.uber.org/zap/writer.go +0 -99
  166. data/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go +0 -188
  167. data/vendor/go.uber.org/zap/zapcore/clock.go +0 -50
  168. data/vendor/go.uber.org/zap/zapcore/console_encoder.go +0 -161
  169. data/vendor/go.uber.org/zap/zapcore/core.go +0 -113
  170. data/vendor/go.uber.org/zap/zapcore/doc.go +0 -24
  171. data/vendor/go.uber.org/zap/zapcore/encoder.go +0 -443
  172. data/vendor/go.uber.org/zap/zapcore/entry.go +0 -264
  173. data/vendor/go.uber.org/zap/zapcore/error.go +0 -132
  174. data/vendor/go.uber.org/zap/zapcore/field.go +0 -233
  175. data/vendor/go.uber.org/zap/zapcore/hook.go +0 -68
  176. data/vendor/go.uber.org/zap/zapcore/increase_level.go +0 -66
  177. data/vendor/go.uber.org/zap/zapcore/json_encoder.go +0 -534
  178. data/vendor/go.uber.org/zap/zapcore/level.go +0 -175
  179. data/vendor/go.uber.org/zap/zapcore/level_strings.go +0 -46
  180. data/vendor/go.uber.org/zap/zapcore/marshaler.go +0 -61
  181. data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +0 -179
  182. data/vendor/go.uber.org/zap/zapcore/sampler.go +0 -208
  183. data/vendor/go.uber.org/zap/zapcore/tee.go +0 -81
  184. data/vendor/go.uber.org/zap/zapcore/write_syncer.go +0 -122
  185. data/vendor/golang.org/x/net/AUTHORS +0 -3
  186. data/vendor/golang.org/x/net/CONTRIBUTORS +0 -3
  187. data/vendor/golang.org/x/net/LICENSE +0 -27
  188. data/vendor/golang.org/x/net/PATENTS +0 -22
  189. data/vendor/golang.org/x/net/context/context.go +0 -56
  190. data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +0 -71
  191. data/vendor/golang.org/x/net/context/go17.go +0 -73
  192. data/vendor/golang.org/x/net/context/go19.go +0 -21
  193. data/vendor/golang.org/x/net/context/pre_go17.go +0 -301
  194. data/vendor/golang.org/x/net/context/pre_go19.go +0 -110
  195. data/vendor/golang.org/x/oauth2/.travis.yml +0 -13
  196. data/vendor/golang.org/x/oauth2/AUTHORS +0 -3
  197. data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +0 -26
  198. data/vendor/golang.org/x/oauth2/CONTRIBUTORS +0 -3
  199. data/vendor/golang.org/x/oauth2/LICENSE +0 -27
  200. data/vendor/golang.org/x/oauth2/README.md +0 -36
  201. data/vendor/golang.org/x/oauth2/go.mod +0 -9
  202. data/vendor/golang.org/x/oauth2/go.sum +0 -361
  203. data/vendor/golang.org/x/oauth2/internal/client_appengine.go +0 -14
  204. data/vendor/golang.org/x/oauth2/internal/doc.go +0 -6
  205. data/vendor/golang.org/x/oauth2/internal/oauth2.go +0 -37
  206. data/vendor/golang.org/x/oauth2/internal/token.go +0 -294
  207. data/vendor/golang.org/x/oauth2/internal/transport.go +0 -33
  208. data/vendor/golang.org/x/oauth2/oauth2.go +0 -381
  209. data/vendor/golang.org/x/oauth2/token.go +0 -178
  210. data/vendor/golang.org/x/oauth2/transport.go +0 -89
  211. data/vendor/google.golang.org/appengine/LICENSE +0 -202
  212. data/vendor/google.golang.org/appengine/internal/api.go +0 -678
  213. data/vendor/google.golang.org/appengine/internal/api_classic.go +0 -169
  214. data/vendor/google.golang.org/appengine/internal/api_common.go +0 -123
  215. data/vendor/google.golang.org/appengine/internal/app_id.go +0 -28
  216. data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +0 -308
  217. data/vendor/google.golang.org/appengine/internal/base/api_base.proto +0 -33
  218. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +0 -4367
  219. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +0 -551
  220. data/vendor/google.golang.org/appengine/internal/identity.go +0 -55
  221. data/vendor/google.golang.org/appengine/internal/identity_classic.go +0 -61
  222. data/vendor/google.golang.org/appengine/internal/identity_flex.go +0 -11
  223. data/vendor/google.golang.org/appengine/internal/identity_vm.go +0 -134
  224. data/vendor/google.golang.org/appengine/internal/internal.go +0 -110
  225. data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +0 -1313
  226. data/vendor/google.golang.org/appengine/internal/log/log_service.proto +0 -150
  227. data/vendor/google.golang.org/appengine/internal/main.go +0 -16
  228. data/vendor/google.golang.org/appengine/internal/main_common.go +0 -7
  229. data/vendor/google.golang.org/appengine/internal/main_vm.go +0 -69
  230. data/vendor/google.golang.org/appengine/internal/metadata.go +0 -60
  231. data/vendor/google.golang.org/appengine/internal/net.go +0 -56
  232. data/vendor/google.golang.org/appengine/internal/regen.sh +0 -40
  233. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +0 -361
  234. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +0 -44
  235. data/vendor/google.golang.org/appengine/internal/transaction.go +0 -115
  236. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +0 -527
  237. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +0 -64
  238. data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +0 -210
  239. data/vendor/google.golang.org/protobuf/AUTHORS +0 -3
  240. data/vendor/google.golang.org/protobuf/CONTRIBUTORS +0 -3
  241. data/vendor/google.golang.org/protobuf/LICENSE +0 -27
  242. data/vendor/google.golang.org/protobuf/PATENTS +0 -22
  243. data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +0 -773
  244. data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +0 -7
  245. data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +0 -371
  246. data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +0 -538
  247. data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +0 -318
  248. data/vendor/google.golang.org/protobuf/internal/descopts/options.go +0 -29
  249. data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +0 -69
  250. data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +0 -213
  251. data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +0 -241
  252. data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +0 -207
  253. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +0 -665
  254. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +0 -190
  255. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +0 -161
  256. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +0 -373
  257. data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +0 -29
  258. data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +0 -265
  259. data/vendor/google.golang.org/protobuf/internal/errors/errors.go +0 -89
  260. data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +0 -39
  261. data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +0 -12
  262. data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +0 -158
  263. data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +0 -631
  264. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +0 -471
  265. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +0 -704
  266. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +0 -450
  267. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +0 -356
  268. data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +0 -107
  269. data/vendor/google.golang.org/protobuf/internal/filetype/build.go +0 -297
  270. data/vendor/google.golang.org/protobuf/internal/flags/flags.go +0 -24
  271. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +0 -9
  272. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +0 -9
  273. data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +0 -34
  274. data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +0 -106
  275. data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +0 -829
  276. data/vendor/google.golang.org/protobuf/internal/genid/doc.go +0 -11
  277. data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +0 -34
  278. data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +0 -19
  279. data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +0 -31
  280. data/vendor/google.golang.org/protobuf/internal/genid/goname.go +0 -25
  281. data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +0 -16
  282. data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +0 -31
  283. data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +0 -116
  284. data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +0 -34
  285. data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +0 -184
  286. data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +0 -13
  287. data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +0 -175
  288. data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +0 -177
  289. data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +0 -141
  290. data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +0 -223
  291. data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +0 -830
  292. data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +0 -5637
  293. data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +0 -388
  294. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +0 -37
  295. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +0 -11
  296. data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +0 -217
  297. data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +0 -123
  298. data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +0 -209
  299. data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +0 -557
  300. data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +0 -17
  301. data/vendor/google.golang.org/protobuf/internal/impl/convert.go +0 -496
  302. data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +0 -141
  303. data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +0 -121
  304. data/vendor/google.golang.org/protobuf/internal/impl/decode.go +0 -276
  305. data/vendor/google.golang.org/protobuf/internal/impl/encode.go +0 -201
  306. data/vendor/google.golang.org/protobuf/internal/impl/enum.go +0 -21
  307. data/vendor/google.golang.org/protobuf/internal/impl/extension.go +0 -156
  308. data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +0 -219
  309. data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +0 -92
  310. data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +0 -176
  311. data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +0 -81
  312. data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +0 -558
  313. data/vendor/google.golang.org/protobuf/internal/impl/merge.go +0 -176
  314. data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +0 -209
  315. data/vendor/google.golang.org/protobuf/internal/impl/message.go +0 -276
  316. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +0 -465
  317. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +0 -543
  318. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +0 -249
  319. data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +0 -178
  320. data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +0 -174
  321. data/vendor/google.golang.org/protobuf/internal/impl/validate.go +0 -576
  322. data/vendor/google.golang.org/protobuf/internal/impl/weak.go +0 -74
  323. data/vendor/google.golang.org/protobuf/internal/order/order.go +0 -89
  324. data/vendor/google.golang.org/protobuf/internal/order/range.go +0 -115
  325. data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +0 -29
  326. data/vendor/google.golang.org/protobuf/internal/set/ints.go +0 -58
  327. data/vendor/google.golang.org/protobuf/internal/strs/strings.go +0 -196
  328. data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +0 -27
  329. data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +0 -94
  330. data/vendor/google.golang.org/protobuf/internal/version/version.go +0 -79
  331. data/vendor/google.golang.org/protobuf/proto/checkinit.go +0 -71
  332. data/vendor/google.golang.org/protobuf/proto/decode.go +0 -278
  333. data/vendor/google.golang.org/protobuf/proto/decode_gen.go +0 -603
  334. data/vendor/google.golang.org/protobuf/proto/doc.go +0 -94
  335. data/vendor/google.golang.org/protobuf/proto/encode.go +0 -319
  336. data/vendor/google.golang.org/protobuf/proto/encode_gen.go +0 -97
  337. data/vendor/google.golang.org/protobuf/proto/equal.go +0 -167
  338. data/vendor/google.golang.org/protobuf/proto/extension.go +0 -92
  339. data/vendor/google.golang.org/protobuf/proto/merge.go +0 -139
  340. data/vendor/google.golang.org/protobuf/proto/messageset.go +0 -93
  341. data/vendor/google.golang.org/protobuf/proto/proto.go +0 -43
  342. data/vendor/google.golang.org/protobuf/proto/proto_methods.go +0 -19
  343. data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +0 -19
  344. data/vendor/google.golang.org/protobuf/proto/reset.go +0 -43
  345. data/vendor/google.golang.org/protobuf/proto/size.go +0 -97
  346. data/vendor/google.golang.org/protobuf/proto/size_gen.go +0 -55
  347. data/vendor/google.golang.org/protobuf/proto/wrappers.go +0 -29
  348. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +0 -276
  349. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +0 -248
  350. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +0 -286
  351. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +0 -374
  352. data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +0 -252
  353. data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +0 -77
  354. data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +0 -504
  355. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +0 -128
  356. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +0 -461
  357. data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +0 -665
  358. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +0 -285
  359. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +0 -59
  360. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +0 -411
  361. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +0 -98
  362. data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +0 -869
  363. data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +0 -15
  364. data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +0 -167
  365. data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +0 -44
  366. data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +0 -56
  367. data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +0 -4039
  368. 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
- }