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,81 +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
- "bytes"
9
- "compress/gzip"
10
- "io/ioutil"
11
- "sync"
12
-
13
- "google.golang.org/protobuf/internal/filedesc"
14
- "google.golang.org/protobuf/reflect/protoreflect"
15
- "google.golang.org/protobuf/reflect/protoregistry"
16
- )
17
-
18
- // Every enum and message type generated by protoc-gen-go since commit 2fc053c5
19
- // on February 25th, 2016 has had a method to get the raw descriptor.
20
- // Types that were not generated by protoc-gen-go or were generated prior
21
- // to that version are not supported.
22
- //
23
- // The []byte returned is the encoded form of a FileDescriptorProto message
24
- // compressed using GZIP. The []int is the path from the top-level file
25
- // to the specific message or enum declaration.
26
- type (
27
- enumV1 interface {
28
- EnumDescriptor() ([]byte, []int)
29
- }
30
- messageV1 interface {
31
- Descriptor() ([]byte, []int)
32
- }
33
- )
34
-
35
- var legacyFileDescCache sync.Map // map[*byte]protoreflect.FileDescriptor
36
-
37
- // legacyLoadFileDesc unmarshals b as a compressed FileDescriptorProto message.
38
- //
39
- // This assumes that b is immutable and that b does not refer to part of a
40
- // concatenated series of GZIP files (which would require shenanigans that
41
- // rely on the concatenation properties of both protobufs and GZIP).
42
- // File descriptors generated by protoc-gen-go do not rely on that property.
43
- func legacyLoadFileDesc(b []byte) protoreflect.FileDescriptor {
44
- // Fast-path: check whether we already have a cached file descriptor.
45
- if fd, ok := legacyFileDescCache.Load(&b[0]); ok {
46
- return fd.(protoreflect.FileDescriptor)
47
- }
48
-
49
- // Slow-path: decompress and unmarshal the file descriptor proto.
50
- zr, err := gzip.NewReader(bytes.NewReader(b))
51
- if err != nil {
52
- panic(err)
53
- }
54
- b2, err := ioutil.ReadAll(zr)
55
- if err != nil {
56
- panic(err)
57
- }
58
-
59
- fd := filedesc.Builder{
60
- RawDescriptor: b2,
61
- FileRegistry: resolverOnly{protoregistry.GlobalFiles}, // do not register back to global registry
62
- }.Build().File
63
- if fd, ok := legacyFileDescCache.LoadOrStore(&b[0], fd); ok {
64
- return fd.(protoreflect.FileDescriptor)
65
- }
66
- return fd
67
- }
68
-
69
- type resolverOnly struct {
70
- reg *protoregistry.Files
71
- }
72
-
73
- func (r resolverOnly) FindFileByPath(path string) (protoreflect.FileDescriptor, error) {
74
- return r.reg.FindFileByPath(path)
75
- }
76
- func (r resolverOnly) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) {
77
- return r.reg.FindDescriptorByName(name)
78
- }
79
- func (resolverOnly) RegisterFile(protoreflect.FileDescriptor) error {
80
- return nil
81
- }
@@ -1,558 +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
- "strings"
11
- "sync"
12
-
13
- "google.golang.org/protobuf/internal/descopts"
14
- ptag "google.golang.org/protobuf/internal/encoding/tag"
15
- "google.golang.org/protobuf/internal/errors"
16
- "google.golang.org/protobuf/internal/filedesc"
17
- "google.golang.org/protobuf/internal/strs"
18
- "google.golang.org/protobuf/reflect/protoreflect"
19
- pref "google.golang.org/protobuf/reflect/protoreflect"
20
- "google.golang.org/protobuf/runtime/protoiface"
21
- piface "google.golang.org/protobuf/runtime/protoiface"
22
- )
23
-
24
- // legacyWrapMessage wraps v as a protoreflect.Message,
25
- // where v must be a *struct kind and not implement the v2 API already.
26
- func legacyWrapMessage(v reflect.Value) pref.Message {
27
- t := v.Type()
28
- if t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct {
29
- return aberrantMessage{v: v}
30
- }
31
- mt := legacyLoadMessageInfo(t, "")
32
- return mt.MessageOf(v.Interface())
33
- }
34
-
35
- // legacyLoadMessageType dynamically loads a protoreflect.Type for t,
36
- // where t must be not implement the v2 API already.
37
- // The provided name is used if it cannot be determined from the message.
38
- func legacyLoadMessageType(t reflect.Type, name pref.FullName) protoreflect.MessageType {
39
- if t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct {
40
- return aberrantMessageType{t}
41
- }
42
- return legacyLoadMessageInfo(t, name)
43
- }
44
-
45
- var legacyMessageTypeCache sync.Map // map[reflect.Type]*MessageInfo
46
-
47
- // legacyLoadMessageInfo dynamically loads a *MessageInfo for t,
48
- // where t must be a *struct kind and not implement the v2 API already.
49
- // The provided name is used if it cannot be determined from the message.
50
- func legacyLoadMessageInfo(t reflect.Type, name pref.FullName) *MessageInfo {
51
- // Fast-path: check if a MessageInfo is cached for this concrete type.
52
- if mt, ok := legacyMessageTypeCache.Load(t); ok {
53
- return mt.(*MessageInfo)
54
- }
55
-
56
- // Slow-path: derive message descriptor and initialize MessageInfo.
57
- mi := &MessageInfo{
58
- Desc: legacyLoadMessageDesc(t, name),
59
- GoReflectType: t,
60
- }
61
-
62
- var hasMarshal, hasUnmarshal bool
63
- v := reflect.Zero(t).Interface()
64
- if _, hasMarshal = v.(legacyMarshaler); hasMarshal {
65
- mi.methods.Marshal = legacyMarshal
66
-
67
- // We have no way to tell whether the type's Marshal method
68
- // supports deterministic serialization or not, but this
69
- // preserves the v1 implementation's behavior of always
70
- // calling Marshal methods when present.
71
- mi.methods.Flags |= piface.SupportMarshalDeterministic
72
- }
73
- if _, hasUnmarshal = v.(legacyUnmarshaler); hasUnmarshal {
74
- mi.methods.Unmarshal = legacyUnmarshal
75
- }
76
- if _, hasMerge := v.(legacyMerger); hasMerge || (hasMarshal && hasUnmarshal) {
77
- mi.methods.Merge = legacyMerge
78
- }
79
-
80
- if mi, ok := legacyMessageTypeCache.LoadOrStore(t, mi); ok {
81
- return mi.(*MessageInfo)
82
- }
83
- return mi
84
- }
85
-
86
- var legacyMessageDescCache sync.Map // map[reflect.Type]protoreflect.MessageDescriptor
87
-
88
- // LegacyLoadMessageDesc returns an MessageDescriptor derived from the Go type,
89
- // which should be a *struct kind and must not implement the v2 API already.
90
- //
91
- // This is exported for testing purposes.
92
- func LegacyLoadMessageDesc(t reflect.Type) pref.MessageDescriptor {
93
- return legacyLoadMessageDesc(t, "")
94
- }
95
- func legacyLoadMessageDesc(t reflect.Type, name pref.FullName) pref.MessageDescriptor {
96
- // Fast-path: check if a MessageDescriptor is cached for this concrete type.
97
- if mi, ok := legacyMessageDescCache.Load(t); ok {
98
- return mi.(pref.MessageDescriptor)
99
- }
100
-
101
- // Slow-path: initialize MessageDescriptor from the raw descriptor.
102
- mv := reflect.Zero(t).Interface()
103
- if _, ok := mv.(pref.ProtoMessage); ok {
104
- panic(fmt.Sprintf("%v already implements proto.Message", t))
105
- }
106
- mdV1, ok := mv.(messageV1)
107
- if !ok {
108
- return aberrantLoadMessageDesc(t, name)
109
- }
110
-
111
- // If this is a dynamic message type where there isn't a 1-1 mapping between
112
- // Go and protobuf types, calling the Descriptor method on the zero value of
113
- // the message type isn't likely to work. If it panics, swallow the panic and
114
- // continue as if the Descriptor method wasn't present.
115
- b, idxs := func() ([]byte, []int) {
116
- defer func() {
117
- recover()
118
- }()
119
- return mdV1.Descriptor()
120
- }()
121
- if b == nil {
122
- return aberrantLoadMessageDesc(t, name)
123
- }
124
-
125
- // If the Go type has no fields, then this might be a proto3 empty message
126
- // from before the size cache was added. If there are any fields, check to
127
- // see that at least one of them looks like something we generated.
128
- if t.Elem().Kind() == reflect.Struct {
129
- if nfield := t.Elem().NumField(); nfield > 0 {
130
- hasProtoField := false
131
- for i := 0; i < nfield; i++ {
132
- f := t.Elem().Field(i)
133
- if f.Tag.Get("protobuf") != "" || f.Tag.Get("protobuf_oneof") != "" || strings.HasPrefix(f.Name, "XXX_") {
134
- hasProtoField = true
135
- break
136
- }
137
- }
138
- if !hasProtoField {
139
- return aberrantLoadMessageDesc(t, name)
140
- }
141
- }
142
- }
143
-
144
- md := legacyLoadFileDesc(b).Messages().Get(idxs[0])
145
- for _, i := range idxs[1:] {
146
- md = md.Messages().Get(i)
147
- }
148
- if name != "" && md.FullName() != name {
149
- panic(fmt.Sprintf("mismatching message name: got %v, want %v", md.FullName(), name))
150
- }
151
- if md, ok := legacyMessageDescCache.LoadOrStore(t, md); ok {
152
- return md.(protoreflect.MessageDescriptor)
153
- }
154
- return md
155
- }
156
-
157
- var (
158
- aberrantMessageDescLock sync.Mutex
159
- aberrantMessageDescCache map[reflect.Type]protoreflect.MessageDescriptor
160
- )
161
-
162
- // aberrantLoadMessageDesc returns an MessageDescriptor derived from the Go type,
163
- // which must not implement protoreflect.ProtoMessage or messageV1.
164
- //
165
- // This is a best-effort derivation of the message descriptor using the protobuf
166
- // tags on the struct fields.
167
- func aberrantLoadMessageDesc(t reflect.Type, name pref.FullName) pref.MessageDescriptor {
168
- aberrantMessageDescLock.Lock()
169
- defer aberrantMessageDescLock.Unlock()
170
- if aberrantMessageDescCache == nil {
171
- aberrantMessageDescCache = make(map[reflect.Type]protoreflect.MessageDescriptor)
172
- }
173
- return aberrantLoadMessageDescReentrant(t, name)
174
- }
175
- func aberrantLoadMessageDescReentrant(t reflect.Type, name pref.FullName) pref.MessageDescriptor {
176
- // Fast-path: check if an MessageDescriptor is cached for this concrete type.
177
- if md, ok := aberrantMessageDescCache[t]; ok {
178
- return md
179
- }
180
-
181
- // Slow-path: construct a descriptor from the Go struct type (best-effort).
182
- // Cache the MessageDescriptor early on so that we can resolve internal
183
- // cyclic references.
184
- md := &filedesc.Message{L2: new(filedesc.MessageL2)}
185
- md.L0.FullName = aberrantDeriveMessageName(t, name)
186
- md.L0.ParentFile = filedesc.SurrogateProto2
187
- aberrantMessageDescCache[t] = md
188
-
189
- if t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct {
190
- return md
191
- }
192
-
193
- // Try to determine if the message is using proto3 by checking scalars.
194
- for i := 0; i < t.Elem().NumField(); i++ {
195
- f := t.Elem().Field(i)
196
- if tag := f.Tag.Get("protobuf"); tag != "" {
197
- switch f.Type.Kind() {
198
- case reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String:
199
- md.L0.ParentFile = filedesc.SurrogateProto3
200
- }
201
- for _, s := range strings.Split(tag, ",") {
202
- if s == "proto3" {
203
- md.L0.ParentFile = filedesc.SurrogateProto3
204
- }
205
- }
206
- }
207
- }
208
-
209
- // Obtain a list of oneof wrapper types.
210
- var oneofWrappers []reflect.Type
211
- for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} {
212
- if fn, ok := t.MethodByName(method); ok {
213
- for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) {
214
- if vs, ok := v.Interface().([]interface{}); ok {
215
- for _, v := range vs {
216
- oneofWrappers = append(oneofWrappers, reflect.TypeOf(v))
217
- }
218
- }
219
- }
220
- }
221
- }
222
-
223
- // Obtain a list of the extension ranges.
224
- if fn, ok := t.MethodByName("ExtensionRangeArray"); ok {
225
- vs := fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[0]
226
- for i := 0; i < vs.Len(); i++ {
227
- v := vs.Index(i)
228
- md.L2.ExtensionRanges.List = append(md.L2.ExtensionRanges.List, [2]pref.FieldNumber{
229
- pref.FieldNumber(v.FieldByName("Start").Int()),
230
- pref.FieldNumber(v.FieldByName("End").Int() + 1),
231
- })
232
- md.L2.ExtensionRangeOptions = append(md.L2.ExtensionRangeOptions, nil)
233
- }
234
- }
235
-
236
- // Derive the message fields by inspecting the struct fields.
237
- for i := 0; i < t.Elem().NumField(); i++ {
238
- f := t.Elem().Field(i)
239
- if tag := f.Tag.Get("protobuf"); tag != "" {
240
- tagKey := f.Tag.Get("protobuf_key")
241
- tagVal := f.Tag.Get("protobuf_val")
242
- aberrantAppendField(md, f.Type, tag, tagKey, tagVal)
243
- }
244
- if tag := f.Tag.Get("protobuf_oneof"); tag != "" {
245
- n := len(md.L2.Oneofs.List)
246
- md.L2.Oneofs.List = append(md.L2.Oneofs.List, filedesc.Oneof{})
247
- od := &md.L2.Oneofs.List[n]
248
- od.L0.FullName = md.FullName().Append(pref.Name(tag))
249
- od.L0.ParentFile = md.L0.ParentFile
250
- od.L0.Parent = md
251
- od.L0.Index = n
252
-
253
- for _, t := range oneofWrappers {
254
- if t.Implements(f.Type) {
255
- f := t.Elem().Field(0)
256
- if tag := f.Tag.Get("protobuf"); tag != "" {
257
- aberrantAppendField(md, f.Type, tag, "", "")
258
- fd := &md.L2.Fields.List[len(md.L2.Fields.List)-1]
259
- fd.L1.ContainingOneof = od
260
- od.L1.Fields.List = append(od.L1.Fields.List, fd)
261
- }
262
- }
263
- }
264
- }
265
- }
266
-
267
- return md
268
- }
269
-
270
- func aberrantDeriveMessageName(t reflect.Type, name pref.FullName) pref.FullName {
271
- if name.IsValid() {
272
- return name
273
- }
274
- func() {
275
- defer func() { recover() }() // swallow possible nil panics
276
- if m, ok := reflect.Zero(t).Interface().(interface{ XXX_MessageName() string }); ok {
277
- name = pref.FullName(m.XXX_MessageName())
278
- }
279
- }()
280
- if name.IsValid() {
281
- return name
282
- }
283
- if t.Kind() == reflect.Ptr {
284
- t = t.Elem()
285
- }
286
- return AberrantDeriveFullName(t)
287
- }
288
-
289
- func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey, tagVal string) {
290
- t := goType
291
- isOptional := t.Kind() == reflect.Ptr && t.Elem().Kind() != reflect.Struct
292
- isRepeated := t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8
293
- if isOptional || isRepeated {
294
- t = t.Elem()
295
- }
296
- fd := ptag.Unmarshal(tag, t, placeholderEnumValues{}).(*filedesc.Field)
297
-
298
- // Append field descriptor to the message.
299
- n := len(md.L2.Fields.List)
300
- md.L2.Fields.List = append(md.L2.Fields.List, *fd)
301
- fd = &md.L2.Fields.List[n]
302
- fd.L0.FullName = md.FullName().Append(fd.Name())
303
- fd.L0.ParentFile = md.L0.ParentFile
304
- fd.L0.Parent = md
305
- fd.L0.Index = n
306
-
307
- if fd.L1.IsWeak || fd.L1.HasPacked {
308
- fd.L1.Options = func() pref.ProtoMessage {
309
- opts := descopts.Field.ProtoReflect().New()
310
- if fd.L1.IsWeak {
311
- opts.Set(opts.Descriptor().Fields().ByName("weak"), protoreflect.ValueOfBool(true))
312
- }
313
- if fd.L1.HasPacked {
314
- opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOfBool(fd.L1.IsPacked))
315
- }
316
- return opts.Interface()
317
- }
318
- }
319
-
320
- // Populate Enum and Message.
321
- if fd.Enum() == nil && fd.Kind() == pref.EnumKind {
322
- switch v := reflect.Zero(t).Interface().(type) {
323
- case pref.Enum:
324
- fd.L1.Enum = v.Descriptor()
325
- default:
326
- fd.L1.Enum = LegacyLoadEnumDesc(t)
327
- }
328
- }
329
- if fd.Message() == nil && (fd.Kind() == pref.MessageKind || fd.Kind() == pref.GroupKind) {
330
- switch v := reflect.Zero(t).Interface().(type) {
331
- case pref.ProtoMessage:
332
- fd.L1.Message = v.ProtoReflect().Descriptor()
333
- case messageV1:
334
- fd.L1.Message = LegacyLoadMessageDesc(t)
335
- default:
336
- if t.Kind() == reflect.Map {
337
- n := len(md.L1.Messages.List)
338
- md.L1.Messages.List = append(md.L1.Messages.List, filedesc.Message{L2: new(filedesc.MessageL2)})
339
- md2 := &md.L1.Messages.List[n]
340
- md2.L0.FullName = md.FullName().Append(pref.Name(strs.MapEntryName(string(fd.Name()))))
341
- md2.L0.ParentFile = md.L0.ParentFile
342
- md2.L0.Parent = md
343
- md2.L0.Index = n
344
-
345
- md2.L1.IsMapEntry = true
346
- md2.L2.Options = func() pref.ProtoMessage {
347
- opts := descopts.Message.ProtoReflect().New()
348
- opts.Set(opts.Descriptor().Fields().ByName("map_entry"), protoreflect.ValueOfBool(true))
349
- return opts.Interface()
350
- }
351
-
352
- aberrantAppendField(md2, t.Key(), tagKey, "", "")
353
- aberrantAppendField(md2, t.Elem(), tagVal, "", "")
354
-
355
- fd.L1.Message = md2
356
- break
357
- }
358
- fd.L1.Message = aberrantLoadMessageDescReentrant(t, "")
359
- }
360
- }
361
- }
362
-
363
- type placeholderEnumValues struct {
364
- protoreflect.EnumValueDescriptors
365
- }
366
-
367
- func (placeholderEnumValues) ByNumber(n pref.EnumNumber) pref.EnumValueDescriptor {
368
- return filedesc.PlaceholderEnumValue(pref.FullName(fmt.Sprintf("UNKNOWN_%d", n)))
369
- }
370
-
371
- // legacyMarshaler is the proto.Marshaler interface superseded by protoiface.Methoder.
372
- type legacyMarshaler interface {
373
- Marshal() ([]byte, error)
374
- }
375
-
376
- // legacyUnmarshaler is the proto.Unmarshaler interface superseded by protoiface.Methoder.
377
- type legacyUnmarshaler interface {
378
- Unmarshal([]byte) error
379
- }
380
-
381
- // legacyMerger is the proto.Merger interface superseded by protoiface.Methoder.
382
- type legacyMerger interface {
383
- Merge(protoiface.MessageV1)
384
- }
385
-
386
- var aberrantProtoMethods = &piface.Methods{
387
- Marshal: legacyMarshal,
388
- Unmarshal: legacyUnmarshal,
389
- Merge: legacyMerge,
390
-
391
- // We have no way to tell whether the type's Marshal method
392
- // supports deterministic serialization or not, but this
393
- // preserves the v1 implementation's behavior of always
394
- // calling Marshal methods when present.
395
- Flags: piface.SupportMarshalDeterministic,
396
- }
397
-
398
- func legacyMarshal(in piface.MarshalInput) (piface.MarshalOutput, error) {
399
- v := in.Message.(unwrapper).protoUnwrap()
400
- marshaler, ok := v.(legacyMarshaler)
401
- if !ok {
402
- return piface.MarshalOutput{}, errors.New("%T does not implement Marshal", v)
403
- }
404
- out, err := marshaler.Marshal()
405
- if in.Buf != nil {
406
- out = append(in.Buf, out...)
407
- }
408
- return piface.MarshalOutput{
409
- Buf: out,
410
- }, err
411
- }
412
-
413
- func legacyUnmarshal(in piface.UnmarshalInput) (piface.UnmarshalOutput, error) {
414
- v := in.Message.(unwrapper).protoUnwrap()
415
- unmarshaler, ok := v.(legacyUnmarshaler)
416
- if !ok {
417
- return piface.UnmarshalOutput{}, errors.New("%T does not implement Unmarshal", v)
418
- }
419
- return piface.UnmarshalOutput{}, unmarshaler.Unmarshal(in.Buf)
420
- }
421
-
422
- func legacyMerge(in piface.MergeInput) piface.MergeOutput {
423
- // Check whether this supports the legacy merger.
424
- dstv := in.Destination.(unwrapper).protoUnwrap()
425
- merger, ok := dstv.(legacyMerger)
426
- if ok {
427
- merger.Merge(Export{}.ProtoMessageV1Of(in.Source))
428
- return piface.MergeOutput{Flags: piface.MergeComplete}
429
- }
430
-
431
- // If legacy merger is unavailable, implement merge in terms of
432
- // a marshal and unmarshal operation.
433
- srcv := in.Source.(unwrapper).protoUnwrap()
434
- marshaler, ok := srcv.(legacyMarshaler)
435
- if !ok {
436
- return piface.MergeOutput{}
437
- }
438
- dstv = in.Destination.(unwrapper).protoUnwrap()
439
- unmarshaler, ok := dstv.(legacyUnmarshaler)
440
- if !ok {
441
- return piface.MergeOutput{}
442
- }
443
- b, err := marshaler.Marshal()
444
- if err != nil {
445
- return piface.MergeOutput{}
446
- }
447
- err = unmarshaler.Unmarshal(b)
448
- if err != nil {
449
- return piface.MergeOutput{}
450
- }
451
- return piface.MergeOutput{Flags: piface.MergeComplete}
452
- }
453
-
454
- // aberrantMessageType implements MessageType for all types other than pointer-to-struct.
455
- type aberrantMessageType struct {
456
- t reflect.Type
457
- }
458
-
459
- func (mt aberrantMessageType) New() pref.Message {
460
- if mt.t.Kind() == reflect.Ptr {
461
- return aberrantMessage{reflect.New(mt.t.Elem())}
462
- }
463
- return aberrantMessage{reflect.Zero(mt.t)}
464
- }
465
- func (mt aberrantMessageType) Zero() pref.Message {
466
- return aberrantMessage{reflect.Zero(mt.t)}
467
- }
468
- func (mt aberrantMessageType) GoType() reflect.Type {
469
- return mt.t
470
- }
471
- func (mt aberrantMessageType) Descriptor() pref.MessageDescriptor {
472
- return LegacyLoadMessageDesc(mt.t)
473
- }
474
-
475
- // aberrantMessage implements Message for all types other than pointer-to-struct.
476
- //
477
- // When the underlying type implements legacyMarshaler or legacyUnmarshaler,
478
- // the aberrant Message can be marshaled or unmarshaled. Otherwise, there is
479
- // not much that can be done with values of this type.
480
- type aberrantMessage struct {
481
- v reflect.Value
482
- }
483
-
484
- // Reset implements the v1 proto.Message.Reset method.
485
- func (m aberrantMessage) Reset() {
486
- if mr, ok := m.v.Interface().(interface{ Reset() }); ok {
487
- mr.Reset()
488
- return
489
- }
490
- if m.v.Kind() == reflect.Ptr && !m.v.IsNil() {
491
- m.v.Elem().Set(reflect.Zero(m.v.Type().Elem()))
492
- }
493
- }
494
-
495
- func (m aberrantMessage) ProtoReflect() pref.Message {
496
- return m
497
- }
498
-
499
- func (m aberrantMessage) Descriptor() pref.MessageDescriptor {
500
- return LegacyLoadMessageDesc(m.v.Type())
501
- }
502
- func (m aberrantMessage) Type() pref.MessageType {
503
- return aberrantMessageType{m.v.Type()}
504
- }
505
- func (m aberrantMessage) New() pref.Message {
506
- if m.v.Type().Kind() == reflect.Ptr {
507
- return aberrantMessage{reflect.New(m.v.Type().Elem())}
508
- }
509
- return aberrantMessage{reflect.Zero(m.v.Type())}
510
- }
511
- func (m aberrantMessage) Interface() pref.ProtoMessage {
512
- return m
513
- }
514
- func (m aberrantMessage) Range(f func(pref.FieldDescriptor, pref.Value) bool) {
515
- return
516
- }
517
- func (m aberrantMessage) Has(pref.FieldDescriptor) bool {
518
- return false
519
- }
520
- func (m aberrantMessage) Clear(pref.FieldDescriptor) {
521
- panic("invalid Message.Clear on " + string(m.Descriptor().FullName()))
522
- }
523
- func (m aberrantMessage) Get(fd pref.FieldDescriptor) pref.Value {
524
- if fd.Default().IsValid() {
525
- return fd.Default()
526
- }
527
- panic("invalid Message.Get on " + string(m.Descriptor().FullName()))
528
- }
529
- func (m aberrantMessage) Set(pref.FieldDescriptor, pref.Value) {
530
- panic("invalid Message.Set on " + string(m.Descriptor().FullName()))
531
- }
532
- func (m aberrantMessage) Mutable(pref.FieldDescriptor) pref.Value {
533
- panic("invalid Message.Mutable on " + string(m.Descriptor().FullName()))
534
- }
535
- func (m aberrantMessage) NewField(pref.FieldDescriptor) pref.Value {
536
- panic("invalid Message.NewField on " + string(m.Descriptor().FullName()))
537
- }
538
- func (m aberrantMessage) WhichOneof(pref.OneofDescriptor) pref.FieldDescriptor {
539
- panic("invalid Message.WhichOneof descriptor on " + string(m.Descriptor().FullName()))
540
- }
541
- func (m aberrantMessage) GetUnknown() pref.RawFields {
542
- return nil
543
- }
544
- func (m aberrantMessage) SetUnknown(pref.RawFields) {
545
- // SetUnknown discards its input on messages which don't support unknown field storage.
546
- }
547
- func (m aberrantMessage) IsValid() bool {
548
- if m.v.Kind() == reflect.Ptr {
549
- return !m.v.IsNil()
550
- }
551
- return false
552
- }
553
- func (m aberrantMessage) ProtoMethods() *piface.Methods {
554
- return aberrantProtoMethods
555
- }
556
- func (m aberrantMessage) protoUnwrap() interface{} {
557
- return m.v.Interface()
558
- }