planetscale 0.2.0 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
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,496 +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
-
11
- pref "google.golang.org/protobuf/reflect/protoreflect"
12
- )
13
-
14
- // unwrapper unwraps the value to the underlying value.
15
- // This is implemented by List and Map.
16
- type unwrapper interface {
17
- protoUnwrap() interface{}
18
- }
19
-
20
- // A Converter coverts to/from Go reflect.Value types and protobuf protoreflect.Value types.
21
- type Converter interface {
22
- // PBValueOf converts a reflect.Value to a protoreflect.Value.
23
- PBValueOf(reflect.Value) pref.Value
24
-
25
- // GoValueOf converts a protoreflect.Value to a reflect.Value.
26
- GoValueOf(pref.Value) reflect.Value
27
-
28
- // IsValidPB returns whether a protoreflect.Value is compatible with this type.
29
- IsValidPB(pref.Value) bool
30
-
31
- // IsValidGo returns whether a reflect.Value is compatible with this type.
32
- IsValidGo(reflect.Value) bool
33
-
34
- // New returns a new field value.
35
- // For scalars, it returns the default value of the field.
36
- // For composite types, it returns a new mutable value.
37
- New() pref.Value
38
-
39
- // Zero returns a new field value.
40
- // For scalars, it returns the default value of the field.
41
- // For composite types, it returns an immutable, empty value.
42
- Zero() pref.Value
43
- }
44
-
45
- // NewConverter matches a Go type with a protobuf field and returns a Converter
46
- // that converts between the two. Enums must be a named int32 kind that
47
- // implements protoreflect.Enum, and messages must be pointer to a named
48
- // struct type that implements protoreflect.ProtoMessage.
49
- //
50
- // This matcher deliberately supports a wider range of Go types than what
51
- // protoc-gen-go historically generated to be able to automatically wrap some
52
- // v1 messages generated by other forks of protoc-gen-go.
53
- func NewConverter(t reflect.Type, fd pref.FieldDescriptor) Converter {
54
- switch {
55
- case fd.IsList():
56
- return newListConverter(t, fd)
57
- case fd.IsMap():
58
- return newMapConverter(t, fd)
59
- default:
60
- return newSingularConverter(t, fd)
61
- }
62
- panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName()))
63
- }
64
-
65
- var (
66
- boolType = reflect.TypeOf(bool(false))
67
- int32Type = reflect.TypeOf(int32(0))
68
- int64Type = reflect.TypeOf(int64(0))
69
- uint32Type = reflect.TypeOf(uint32(0))
70
- uint64Type = reflect.TypeOf(uint64(0))
71
- float32Type = reflect.TypeOf(float32(0))
72
- float64Type = reflect.TypeOf(float64(0))
73
- stringType = reflect.TypeOf(string(""))
74
- bytesType = reflect.TypeOf([]byte(nil))
75
- byteType = reflect.TypeOf(byte(0))
76
- )
77
-
78
- var (
79
- boolZero = pref.ValueOfBool(false)
80
- int32Zero = pref.ValueOfInt32(0)
81
- int64Zero = pref.ValueOfInt64(0)
82
- uint32Zero = pref.ValueOfUint32(0)
83
- uint64Zero = pref.ValueOfUint64(0)
84
- float32Zero = pref.ValueOfFloat32(0)
85
- float64Zero = pref.ValueOfFloat64(0)
86
- stringZero = pref.ValueOfString("")
87
- bytesZero = pref.ValueOfBytes(nil)
88
- )
89
-
90
- func newSingularConverter(t reflect.Type, fd pref.FieldDescriptor) Converter {
91
- defVal := func(fd pref.FieldDescriptor, zero pref.Value) pref.Value {
92
- if fd.Cardinality() == pref.Repeated {
93
- // Default isn't defined for repeated fields.
94
- return zero
95
- }
96
- return fd.Default()
97
- }
98
- switch fd.Kind() {
99
- case pref.BoolKind:
100
- if t.Kind() == reflect.Bool {
101
- return &boolConverter{t, defVal(fd, boolZero)}
102
- }
103
- case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind:
104
- if t.Kind() == reflect.Int32 {
105
- return &int32Converter{t, defVal(fd, int32Zero)}
106
- }
107
- case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind:
108
- if t.Kind() == reflect.Int64 {
109
- return &int64Converter{t, defVal(fd, int64Zero)}
110
- }
111
- case pref.Uint32Kind, pref.Fixed32Kind:
112
- if t.Kind() == reflect.Uint32 {
113
- return &uint32Converter{t, defVal(fd, uint32Zero)}
114
- }
115
- case pref.Uint64Kind, pref.Fixed64Kind:
116
- if t.Kind() == reflect.Uint64 {
117
- return &uint64Converter{t, defVal(fd, uint64Zero)}
118
- }
119
- case pref.FloatKind:
120
- if t.Kind() == reflect.Float32 {
121
- return &float32Converter{t, defVal(fd, float32Zero)}
122
- }
123
- case pref.DoubleKind:
124
- if t.Kind() == reflect.Float64 {
125
- return &float64Converter{t, defVal(fd, float64Zero)}
126
- }
127
- case pref.StringKind:
128
- if t.Kind() == reflect.String || (t.Kind() == reflect.Slice && t.Elem() == byteType) {
129
- return &stringConverter{t, defVal(fd, stringZero)}
130
- }
131
- case pref.BytesKind:
132
- if t.Kind() == reflect.String || (t.Kind() == reflect.Slice && t.Elem() == byteType) {
133
- return &bytesConverter{t, defVal(fd, bytesZero)}
134
- }
135
- case pref.EnumKind:
136
- // Handle enums, which must be a named int32 type.
137
- if t.Kind() == reflect.Int32 {
138
- return newEnumConverter(t, fd)
139
- }
140
- case pref.MessageKind, pref.GroupKind:
141
- return newMessageConverter(t)
142
- }
143
- panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName()))
144
- }
145
-
146
- type boolConverter struct {
147
- goType reflect.Type
148
- def pref.Value
149
- }
150
-
151
- func (c *boolConverter) PBValueOf(v reflect.Value) pref.Value {
152
- if v.Type() != c.goType {
153
- panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
154
- }
155
- return pref.ValueOfBool(v.Bool())
156
- }
157
- func (c *boolConverter) GoValueOf(v pref.Value) reflect.Value {
158
- return reflect.ValueOf(v.Bool()).Convert(c.goType)
159
- }
160
- func (c *boolConverter) IsValidPB(v pref.Value) bool {
161
- _, ok := v.Interface().(bool)
162
- return ok
163
- }
164
- func (c *boolConverter) IsValidGo(v reflect.Value) bool {
165
- return v.IsValid() && v.Type() == c.goType
166
- }
167
- func (c *boolConverter) New() pref.Value { return c.def }
168
- func (c *boolConverter) Zero() pref.Value { return c.def }
169
-
170
- type int32Converter struct {
171
- goType reflect.Type
172
- def pref.Value
173
- }
174
-
175
- func (c *int32Converter) PBValueOf(v reflect.Value) pref.Value {
176
- if v.Type() != c.goType {
177
- panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
178
- }
179
- return pref.ValueOfInt32(int32(v.Int()))
180
- }
181
- func (c *int32Converter) GoValueOf(v pref.Value) reflect.Value {
182
- return reflect.ValueOf(int32(v.Int())).Convert(c.goType)
183
- }
184
- func (c *int32Converter) IsValidPB(v pref.Value) bool {
185
- _, ok := v.Interface().(int32)
186
- return ok
187
- }
188
- func (c *int32Converter) IsValidGo(v reflect.Value) bool {
189
- return v.IsValid() && v.Type() == c.goType
190
- }
191
- func (c *int32Converter) New() pref.Value { return c.def }
192
- func (c *int32Converter) Zero() pref.Value { return c.def }
193
-
194
- type int64Converter struct {
195
- goType reflect.Type
196
- def pref.Value
197
- }
198
-
199
- func (c *int64Converter) PBValueOf(v reflect.Value) pref.Value {
200
- if v.Type() != c.goType {
201
- panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
202
- }
203
- return pref.ValueOfInt64(int64(v.Int()))
204
- }
205
- func (c *int64Converter) GoValueOf(v pref.Value) reflect.Value {
206
- return reflect.ValueOf(int64(v.Int())).Convert(c.goType)
207
- }
208
- func (c *int64Converter) IsValidPB(v pref.Value) bool {
209
- _, ok := v.Interface().(int64)
210
- return ok
211
- }
212
- func (c *int64Converter) IsValidGo(v reflect.Value) bool {
213
- return v.IsValid() && v.Type() == c.goType
214
- }
215
- func (c *int64Converter) New() pref.Value { return c.def }
216
- func (c *int64Converter) Zero() pref.Value { return c.def }
217
-
218
- type uint32Converter struct {
219
- goType reflect.Type
220
- def pref.Value
221
- }
222
-
223
- func (c *uint32Converter) PBValueOf(v reflect.Value) pref.Value {
224
- if v.Type() != c.goType {
225
- panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
226
- }
227
- return pref.ValueOfUint32(uint32(v.Uint()))
228
- }
229
- func (c *uint32Converter) GoValueOf(v pref.Value) reflect.Value {
230
- return reflect.ValueOf(uint32(v.Uint())).Convert(c.goType)
231
- }
232
- func (c *uint32Converter) IsValidPB(v pref.Value) bool {
233
- _, ok := v.Interface().(uint32)
234
- return ok
235
- }
236
- func (c *uint32Converter) IsValidGo(v reflect.Value) bool {
237
- return v.IsValid() && v.Type() == c.goType
238
- }
239
- func (c *uint32Converter) New() pref.Value { return c.def }
240
- func (c *uint32Converter) Zero() pref.Value { return c.def }
241
-
242
- type uint64Converter struct {
243
- goType reflect.Type
244
- def pref.Value
245
- }
246
-
247
- func (c *uint64Converter) PBValueOf(v reflect.Value) pref.Value {
248
- if v.Type() != c.goType {
249
- panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
250
- }
251
- return pref.ValueOfUint64(uint64(v.Uint()))
252
- }
253
- func (c *uint64Converter) GoValueOf(v pref.Value) reflect.Value {
254
- return reflect.ValueOf(uint64(v.Uint())).Convert(c.goType)
255
- }
256
- func (c *uint64Converter) IsValidPB(v pref.Value) bool {
257
- _, ok := v.Interface().(uint64)
258
- return ok
259
- }
260
- func (c *uint64Converter) IsValidGo(v reflect.Value) bool {
261
- return v.IsValid() && v.Type() == c.goType
262
- }
263
- func (c *uint64Converter) New() pref.Value { return c.def }
264
- func (c *uint64Converter) Zero() pref.Value { return c.def }
265
-
266
- type float32Converter struct {
267
- goType reflect.Type
268
- def pref.Value
269
- }
270
-
271
- func (c *float32Converter) PBValueOf(v reflect.Value) pref.Value {
272
- if v.Type() != c.goType {
273
- panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
274
- }
275
- return pref.ValueOfFloat32(float32(v.Float()))
276
- }
277
- func (c *float32Converter) GoValueOf(v pref.Value) reflect.Value {
278
- return reflect.ValueOf(float32(v.Float())).Convert(c.goType)
279
- }
280
- func (c *float32Converter) IsValidPB(v pref.Value) bool {
281
- _, ok := v.Interface().(float32)
282
- return ok
283
- }
284
- func (c *float32Converter) IsValidGo(v reflect.Value) bool {
285
- return v.IsValid() && v.Type() == c.goType
286
- }
287
- func (c *float32Converter) New() pref.Value { return c.def }
288
- func (c *float32Converter) Zero() pref.Value { return c.def }
289
-
290
- type float64Converter struct {
291
- goType reflect.Type
292
- def pref.Value
293
- }
294
-
295
- func (c *float64Converter) PBValueOf(v reflect.Value) pref.Value {
296
- if v.Type() != c.goType {
297
- panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
298
- }
299
- return pref.ValueOfFloat64(float64(v.Float()))
300
- }
301
- func (c *float64Converter) GoValueOf(v pref.Value) reflect.Value {
302
- return reflect.ValueOf(float64(v.Float())).Convert(c.goType)
303
- }
304
- func (c *float64Converter) IsValidPB(v pref.Value) bool {
305
- _, ok := v.Interface().(float64)
306
- return ok
307
- }
308
- func (c *float64Converter) IsValidGo(v reflect.Value) bool {
309
- return v.IsValid() && v.Type() == c.goType
310
- }
311
- func (c *float64Converter) New() pref.Value { return c.def }
312
- func (c *float64Converter) Zero() pref.Value { return c.def }
313
-
314
- type stringConverter struct {
315
- goType reflect.Type
316
- def pref.Value
317
- }
318
-
319
- func (c *stringConverter) PBValueOf(v reflect.Value) pref.Value {
320
- if v.Type() != c.goType {
321
- panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
322
- }
323
- return pref.ValueOfString(v.Convert(stringType).String())
324
- }
325
- func (c *stringConverter) GoValueOf(v pref.Value) reflect.Value {
326
- // pref.Value.String never panics, so we go through an interface
327
- // conversion here to check the type.
328
- s := v.Interface().(string)
329
- if c.goType.Kind() == reflect.Slice && s == "" {
330
- return reflect.Zero(c.goType) // ensure empty string is []byte(nil)
331
- }
332
- return reflect.ValueOf(s).Convert(c.goType)
333
- }
334
- func (c *stringConverter) IsValidPB(v pref.Value) bool {
335
- _, ok := v.Interface().(string)
336
- return ok
337
- }
338
- func (c *stringConverter) IsValidGo(v reflect.Value) bool {
339
- return v.IsValid() && v.Type() == c.goType
340
- }
341
- func (c *stringConverter) New() pref.Value { return c.def }
342
- func (c *stringConverter) Zero() pref.Value { return c.def }
343
-
344
- type bytesConverter struct {
345
- goType reflect.Type
346
- def pref.Value
347
- }
348
-
349
- func (c *bytesConverter) PBValueOf(v reflect.Value) pref.Value {
350
- if v.Type() != c.goType {
351
- panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
352
- }
353
- if c.goType.Kind() == reflect.String && v.Len() == 0 {
354
- return pref.ValueOfBytes(nil) // ensure empty string is []byte(nil)
355
- }
356
- return pref.ValueOfBytes(v.Convert(bytesType).Bytes())
357
- }
358
- func (c *bytesConverter) GoValueOf(v pref.Value) reflect.Value {
359
- return reflect.ValueOf(v.Bytes()).Convert(c.goType)
360
- }
361
- func (c *bytesConverter) IsValidPB(v pref.Value) bool {
362
- _, ok := v.Interface().([]byte)
363
- return ok
364
- }
365
- func (c *bytesConverter) IsValidGo(v reflect.Value) bool {
366
- return v.IsValid() && v.Type() == c.goType
367
- }
368
- func (c *bytesConverter) New() pref.Value { return c.def }
369
- func (c *bytesConverter) Zero() pref.Value { return c.def }
370
-
371
- type enumConverter struct {
372
- goType reflect.Type
373
- def pref.Value
374
- }
375
-
376
- func newEnumConverter(goType reflect.Type, fd pref.FieldDescriptor) Converter {
377
- var def pref.Value
378
- if fd.Cardinality() == pref.Repeated {
379
- def = pref.ValueOfEnum(fd.Enum().Values().Get(0).Number())
380
- } else {
381
- def = fd.Default()
382
- }
383
- return &enumConverter{goType, def}
384
- }
385
-
386
- func (c *enumConverter) PBValueOf(v reflect.Value) pref.Value {
387
- if v.Type() != c.goType {
388
- panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
389
- }
390
- return pref.ValueOfEnum(pref.EnumNumber(v.Int()))
391
- }
392
-
393
- func (c *enumConverter) GoValueOf(v pref.Value) reflect.Value {
394
- return reflect.ValueOf(v.Enum()).Convert(c.goType)
395
- }
396
-
397
- func (c *enumConverter) IsValidPB(v pref.Value) bool {
398
- _, ok := v.Interface().(pref.EnumNumber)
399
- return ok
400
- }
401
-
402
- func (c *enumConverter) IsValidGo(v reflect.Value) bool {
403
- return v.IsValid() && v.Type() == c.goType
404
- }
405
-
406
- func (c *enumConverter) New() pref.Value {
407
- return c.def
408
- }
409
-
410
- func (c *enumConverter) Zero() pref.Value {
411
- return c.def
412
- }
413
-
414
- type messageConverter struct {
415
- goType reflect.Type
416
- }
417
-
418
- func newMessageConverter(goType reflect.Type) Converter {
419
- return &messageConverter{goType}
420
- }
421
-
422
- func (c *messageConverter) PBValueOf(v reflect.Value) pref.Value {
423
- if v.Type() != c.goType {
424
- panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
425
- }
426
- if c.isNonPointer() {
427
- if v.CanAddr() {
428
- v = v.Addr() // T => *T
429
- } else {
430
- v = reflect.Zero(reflect.PtrTo(v.Type()))
431
- }
432
- }
433
- if m, ok := v.Interface().(pref.ProtoMessage); ok {
434
- return pref.ValueOfMessage(m.ProtoReflect())
435
- }
436
- return pref.ValueOfMessage(legacyWrapMessage(v))
437
- }
438
-
439
- func (c *messageConverter) GoValueOf(v pref.Value) reflect.Value {
440
- m := v.Message()
441
- var rv reflect.Value
442
- if u, ok := m.(unwrapper); ok {
443
- rv = reflect.ValueOf(u.protoUnwrap())
444
- } else {
445
- rv = reflect.ValueOf(m.Interface())
446
- }
447
- if c.isNonPointer() {
448
- if rv.Type() != reflect.PtrTo(c.goType) {
449
- panic(fmt.Sprintf("invalid type: got %v, want %v", rv.Type(), reflect.PtrTo(c.goType)))
450
- }
451
- if !rv.IsNil() {
452
- rv = rv.Elem() // *T => T
453
- } else {
454
- rv = reflect.Zero(rv.Type().Elem())
455
- }
456
- }
457
- if rv.Type() != c.goType {
458
- panic(fmt.Sprintf("invalid type: got %v, want %v", rv.Type(), c.goType))
459
- }
460
- return rv
461
- }
462
-
463
- func (c *messageConverter) IsValidPB(v pref.Value) bool {
464
- m := v.Message()
465
- var rv reflect.Value
466
- if u, ok := m.(unwrapper); ok {
467
- rv = reflect.ValueOf(u.protoUnwrap())
468
- } else {
469
- rv = reflect.ValueOf(m.Interface())
470
- }
471
- if c.isNonPointer() {
472
- return rv.Type() == reflect.PtrTo(c.goType)
473
- }
474
- return rv.Type() == c.goType
475
- }
476
-
477
- func (c *messageConverter) IsValidGo(v reflect.Value) bool {
478
- return v.IsValid() && v.Type() == c.goType
479
- }
480
-
481
- func (c *messageConverter) New() pref.Value {
482
- if c.isNonPointer() {
483
- return c.PBValueOf(reflect.New(c.goType).Elem())
484
- }
485
- return c.PBValueOf(reflect.New(c.goType.Elem()))
486
- }
487
-
488
- func (c *messageConverter) Zero() pref.Value {
489
- return c.PBValueOf(reflect.Zero(c.goType))
490
- }
491
-
492
- // isNonPointer reports whether the type is a non-pointer type.
493
- // This never occurs for generated message types.
494
- func (c *messageConverter) isNonPointer() bool {
495
- return c.goType.Kind() != reflect.Ptr
496
- }
@@ -1,141 +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
-
11
- pref "google.golang.org/protobuf/reflect/protoreflect"
12
- )
13
-
14
- func newListConverter(t reflect.Type, fd pref.FieldDescriptor) Converter {
15
- switch {
16
- case t.Kind() == reflect.Ptr && t.Elem().Kind() == reflect.Slice:
17
- return &listPtrConverter{t, newSingularConverter(t.Elem().Elem(), fd)}
18
- case t.Kind() == reflect.Slice:
19
- return &listConverter{t, newSingularConverter(t.Elem(), fd)}
20
- }
21
- panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName()))
22
- }
23
-
24
- type listConverter struct {
25
- goType reflect.Type // []T
26
- c Converter
27
- }
28
-
29
- func (c *listConverter) PBValueOf(v reflect.Value) pref.Value {
30
- if v.Type() != c.goType {
31
- panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
32
- }
33
- pv := reflect.New(c.goType)
34
- pv.Elem().Set(v)
35
- return pref.ValueOfList(&listReflect{pv, c.c})
36
- }
37
-
38
- func (c *listConverter) GoValueOf(v pref.Value) reflect.Value {
39
- rv := v.List().(*listReflect).v
40
- if rv.IsNil() {
41
- return reflect.Zero(c.goType)
42
- }
43
- return rv.Elem()
44
- }
45
-
46
- func (c *listConverter) IsValidPB(v pref.Value) bool {
47
- list, ok := v.Interface().(*listReflect)
48
- if !ok {
49
- return false
50
- }
51
- return list.v.Type().Elem() == c.goType
52
- }
53
-
54
- func (c *listConverter) IsValidGo(v reflect.Value) bool {
55
- return v.IsValid() && v.Type() == c.goType
56
- }
57
-
58
- func (c *listConverter) New() pref.Value {
59
- return pref.ValueOfList(&listReflect{reflect.New(c.goType), c.c})
60
- }
61
-
62
- func (c *listConverter) Zero() pref.Value {
63
- return pref.ValueOfList(&listReflect{reflect.Zero(reflect.PtrTo(c.goType)), c.c})
64
- }
65
-
66
- type listPtrConverter struct {
67
- goType reflect.Type // *[]T
68
- c Converter
69
- }
70
-
71
- func (c *listPtrConverter) PBValueOf(v reflect.Value) pref.Value {
72
- if v.Type() != c.goType {
73
- panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
74
- }
75
- return pref.ValueOfList(&listReflect{v, c.c})
76
- }
77
-
78
- func (c *listPtrConverter) GoValueOf(v pref.Value) reflect.Value {
79
- return v.List().(*listReflect).v
80
- }
81
-
82
- func (c *listPtrConverter) IsValidPB(v pref.Value) bool {
83
- list, ok := v.Interface().(*listReflect)
84
- if !ok {
85
- return false
86
- }
87
- return list.v.Type() == c.goType
88
- }
89
-
90
- func (c *listPtrConverter) IsValidGo(v reflect.Value) bool {
91
- return v.IsValid() && v.Type() == c.goType
92
- }
93
-
94
- func (c *listPtrConverter) New() pref.Value {
95
- return c.PBValueOf(reflect.New(c.goType.Elem()))
96
- }
97
-
98
- func (c *listPtrConverter) Zero() pref.Value {
99
- return c.PBValueOf(reflect.Zero(c.goType))
100
- }
101
-
102
- type listReflect struct {
103
- v reflect.Value // *[]T
104
- conv Converter
105
- }
106
-
107
- func (ls *listReflect) Len() int {
108
- if ls.v.IsNil() {
109
- return 0
110
- }
111
- return ls.v.Elem().Len()
112
- }
113
- func (ls *listReflect) Get(i int) pref.Value {
114
- return ls.conv.PBValueOf(ls.v.Elem().Index(i))
115
- }
116
- func (ls *listReflect) Set(i int, v pref.Value) {
117
- ls.v.Elem().Index(i).Set(ls.conv.GoValueOf(v))
118
- }
119
- func (ls *listReflect) Append(v pref.Value) {
120
- ls.v.Elem().Set(reflect.Append(ls.v.Elem(), ls.conv.GoValueOf(v)))
121
- }
122
- func (ls *listReflect) AppendMutable() pref.Value {
123
- if _, ok := ls.conv.(*messageConverter); !ok {
124
- panic("invalid AppendMutable on list with non-message type")
125
- }
126
- v := ls.NewElement()
127
- ls.Append(v)
128
- return v
129
- }
130
- func (ls *listReflect) Truncate(i int) {
131
- ls.v.Elem().Set(ls.v.Elem().Slice(0, i))
132
- }
133
- func (ls *listReflect) NewElement() pref.Value {
134
- return ls.conv.New()
135
- }
136
- func (ls *listReflect) IsValid() bool {
137
- return !ls.v.IsNil()
138
- }
139
- func (ls *listReflect) protoUnwrap() interface{} {
140
- return ls.v.Interface()
141
- }