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,576 +0,0 @@
1
- // Copyright 2019 The Go Authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style
3
- // license that can be found in the LICENSE file.
4
-
5
- package impl
6
-
7
- import (
8
- "fmt"
9
- "math"
10
- "math/bits"
11
- "reflect"
12
- "unicode/utf8"
13
-
14
- "google.golang.org/protobuf/encoding/protowire"
15
- "google.golang.org/protobuf/internal/encoding/messageset"
16
- "google.golang.org/protobuf/internal/flags"
17
- "google.golang.org/protobuf/internal/genid"
18
- "google.golang.org/protobuf/internal/strs"
19
- pref "google.golang.org/protobuf/reflect/protoreflect"
20
- preg "google.golang.org/protobuf/reflect/protoregistry"
21
- piface "google.golang.org/protobuf/runtime/protoiface"
22
- )
23
-
24
- // ValidationStatus is the result of validating the wire-format encoding of a message.
25
- type ValidationStatus int
26
-
27
- const (
28
- // ValidationUnknown indicates that unmarshaling the message might succeed or fail.
29
- // The validator was unable to render a judgement.
30
- //
31
- // The only causes of this status are an aberrant message type appearing somewhere
32
- // in the message or a failure in the extension resolver.
33
- ValidationUnknown ValidationStatus = iota + 1
34
-
35
- // ValidationInvalid indicates that unmarshaling the message will fail.
36
- ValidationInvalid
37
-
38
- // ValidationValid indicates that unmarshaling the message will succeed.
39
- ValidationValid
40
- )
41
-
42
- func (v ValidationStatus) String() string {
43
- switch v {
44
- case ValidationUnknown:
45
- return "ValidationUnknown"
46
- case ValidationInvalid:
47
- return "ValidationInvalid"
48
- case ValidationValid:
49
- return "ValidationValid"
50
- default:
51
- return fmt.Sprintf("ValidationStatus(%d)", int(v))
52
- }
53
- }
54
-
55
- // Validate determines whether the contents of the buffer are a valid wire encoding
56
- // of the message type.
57
- //
58
- // This function is exposed for testing.
59
- func Validate(mt pref.MessageType, in piface.UnmarshalInput) (out piface.UnmarshalOutput, _ ValidationStatus) {
60
- mi, ok := mt.(*MessageInfo)
61
- if !ok {
62
- return out, ValidationUnknown
63
- }
64
- if in.Resolver == nil {
65
- in.Resolver = preg.GlobalTypes
66
- }
67
- o, st := mi.validate(in.Buf, 0, unmarshalOptions{
68
- flags: in.Flags,
69
- resolver: in.Resolver,
70
- })
71
- if o.initialized {
72
- out.Flags |= piface.UnmarshalInitialized
73
- }
74
- return out, st
75
- }
76
-
77
- type validationInfo struct {
78
- mi *MessageInfo
79
- typ validationType
80
- keyType, valType validationType
81
-
82
- // For non-required fields, requiredBit is 0.
83
- //
84
- // For required fields, requiredBit's nth bit is set, where n is a
85
- // unique index in the range [0, MessageInfo.numRequiredFields).
86
- //
87
- // If there are more than 64 required fields, requiredBit is 0.
88
- requiredBit uint64
89
- }
90
-
91
- type validationType uint8
92
-
93
- const (
94
- validationTypeOther validationType = iota
95
- validationTypeMessage
96
- validationTypeGroup
97
- validationTypeMap
98
- validationTypeRepeatedVarint
99
- validationTypeRepeatedFixed32
100
- validationTypeRepeatedFixed64
101
- validationTypeVarint
102
- validationTypeFixed32
103
- validationTypeFixed64
104
- validationTypeBytes
105
- validationTypeUTF8String
106
- validationTypeMessageSetItem
107
- )
108
-
109
- func newFieldValidationInfo(mi *MessageInfo, si structInfo, fd pref.FieldDescriptor, ft reflect.Type) validationInfo {
110
- var vi validationInfo
111
- switch {
112
- case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic():
113
- switch fd.Kind() {
114
- case pref.MessageKind:
115
- vi.typ = validationTypeMessage
116
- if ot, ok := si.oneofWrappersByNumber[fd.Number()]; ok {
117
- vi.mi = getMessageInfo(ot.Field(0).Type)
118
- }
119
- case pref.GroupKind:
120
- vi.typ = validationTypeGroup
121
- if ot, ok := si.oneofWrappersByNumber[fd.Number()]; ok {
122
- vi.mi = getMessageInfo(ot.Field(0).Type)
123
- }
124
- case pref.StringKind:
125
- if strs.EnforceUTF8(fd) {
126
- vi.typ = validationTypeUTF8String
127
- }
128
- }
129
- default:
130
- vi = newValidationInfo(fd, ft)
131
- }
132
- if fd.Cardinality() == pref.Required {
133
- // Avoid overflow. The required field check is done with a 64-bit mask, with
134
- // any message containing more than 64 required fields always reported as
135
- // potentially uninitialized, so it is not important to get a precise count
136
- // of the required fields past 64.
137
- if mi.numRequiredFields < math.MaxUint8 {
138
- mi.numRequiredFields++
139
- vi.requiredBit = 1 << (mi.numRequiredFields - 1)
140
- }
141
- }
142
- return vi
143
- }
144
-
145
- func newValidationInfo(fd pref.FieldDescriptor, ft reflect.Type) validationInfo {
146
- var vi validationInfo
147
- switch {
148
- case fd.IsList():
149
- switch fd.Kind() {
150
- case pref.MessageKind:
151
- vi.typ = validationTypeMessage
152
- if ft.Kind() == reflect.Slice {
153
- vi.mi = getMessageInfo(ft.Elem())
154
- }
155
- case pref.GroupKind:
156
- vi.typ = validationTypeGroup
157
- if ft.Kind() == reflect.Slice {
158
- vi.mi = getMessageInfo(ft.Elem())
159
- }
160
- case pref.StringKind:
161
- vi.typ = validationTypeBytes
162
- if strs.EnforceUTF8(fd) {
163
- vi.typ = validationTypeUTF8String
164
- }
165
- default:
166
- switch wireTypes[fd.Kind()] {
167
- case protowire.VarintType:
168
- vi.typ = validationTypeRepeatedVarint
169
- case protowire.Fixed32Type:
170
- vi.typ = validationTypeRepeatedFixed32
171
- case protowire.Fixed64Type:
172
- vi.typ = validationTypeRepeatedFixed64
173
- }
174
- }
175
- case fd.IsMap():
176
- vi.typ = validationTypeMap
177
- switch fd.MapKey().Kind() {
178
- case pref.StringKind:
179
- if strs.EnforceUTF8(fd) {
180
- vi.keyType = validationTypeUTF8String
181
- }
182
- }
183
- switch fd.MapValue().Kind() {
184
- case pref.MessageKind:
185
- vi.valType = validationTypeMessage
186
- if ft.Kind() == reflect.Map {
187
- vi.mi = getMessageInfo(ft.Elem())
188
- }
189
- case pref.StringKind:
190
- if strs.EnforceUTF8(fd) {
191
- vi.valType = validationTypeUTF8String
192
- }
193
- }
194
- default:
195
- switch fd.Kind() {
196
- case pref.MessageKind:
197
- vi.typ = validationTypeMessage
198
- if !fd.IsWeak() {
199
- vi.mi = getMessageInfo(ft)
200
- }
201
- case pref.GroupKind:
202
- vi.typ = validationTypeGroup
203
- vi.mi = getMessageInfo(ft)
204
- case pref.StringKind:
205
- vi.typ = validationTypeBytes
206
- if strs.EnforceUTF8(fd) {
207
- vi.typ = validationTypeUTF8String
208
- }
209
- default:
210
- switch wireTypes[fd.Kind()] {
211
- case protowire.VarintType:
212
- vi.typ = validationTypeVarint
213
- case protowire.Fixed32Type:
214
- vi.typ = validationTypeFixed32
215
- case protowire.Fixed64Type:
216
- vi.typ = validationTypeFixed64
217
- case protowire.BytesType:
218
- vi.typ = validationTypeBytes
219
- }
220
- }
221
- }
222
- return vi
223
- }
224
-
225
- func (mi *MessageInfo) validate(b []byte, groupTag protowire.Number, opts unmarshalOptions) (out unmarshalOutput, result ValidationStatus) {
226
- mi.init()
227
- type validationState struct {
228
- typ validationType
229
- keyType, valType validationType
230
- endGroup protowire.Number
231
- mi *MessageInfo
232
- tail []byte
233
- requiredMask uint64
234
- }
235
-
236
- // Pre-allocate some slots to avoid repeated slice reallocation.
237
- states := make([]validationState, 0, 16)
238
- states = append(states, validationState{
239
- typ: validationTypeMessage,
240
- mi: mi,
241
- })
242
- if groupTag > 0 {
243
- states[0].typ = validationTypeGroup
244
- states[0].endGroup = groupTag
245
- }
246
- initialized := true
247
- start := len(b)
248
- State:
249
- for len(states) > 0 {
250
- st := &states[len(states)-1]
251
- for len(b) > 0 {
252
- // Parse the tag (field number and wire type).
253
- var tag uint64
254
- if b[0] < 0x80 {
255
- tag = uint64(b[0])
256
- b = b[1:]
257
- } else if len(b) >= 2 && b[1] < 128 {
258
- tag = uint64(b[0]&0x7f) + uint64(b[1])<<7
259
- b = b[2:]
260
- } else {
261
- var n int
262
- tag, n = protowire.ConsumeVarint(b)
263
- if n < 0 {
264
- return out, ValidationInvalid
265
- }
266
- b = b[n:]
267
- }
268
- var num protowire.Number
269
- if n := tag >> 3; n < uint64(protowire.MinValidNumber) || n > uint64(protowire.MaxValidNumber) {
270
- return out, ValidationInvalid
271
- } else {
272
- num = protowire.Number(n)
273
- }
274
- wtyp := protowire.Type(tag & 7)
275
-
276
- if wtyp == protowire.EndGroupType {
277
- if st.endGroup == num {
278
- goto PopState
279
- }
280
- return out, ValidationInvalid
281
- }
282
- var vi validationInfo
283
- switch {
284
- case st.typ == validationTypeMap:
285
- switch num {
286
- case genid.MapEntry_Key_field_number:
287
- vi.typ = st.keyType
288
- case genid.MapEntry_Value_field_number:
289
- vi.typ = st.valType
290
- vi.mi = st.mi
291
- vi.requiredBit = 1
292
- }
293
- case flags.ProtoLegacy && st.mi.isMessageSet:
294
- switch num {
295
- case messageset.FieldItem:
296
- vi.typ = validationTypeMessageSetItem
297
- }
298
- default:
299
- var f *coderFieldInfo
300
- if int(num) < len(st.mi.denseCoderFields) {
301
- f = st.mi.denseCoderFields[num]
302
- } else {
303
- f = st.mi.coderFields[num]
304
- }
305
- if f != nil {
306
- vi = f.validation
307
- if vi.typ == validationTypeMessage && vi.mi == nil {
308
- // Probable weak field.
309
- //
310
- // TODO: Consider storing the results of this lookup somewhere
311
- // rather than recomputing it on every validation.
312
- fd := st.mi.Desc.Fields().ByNumber(num)
313
- if fd == nil || !fd.IsWeak() {
314
- break
315
- }
316
- messageName := fd.Message().FullName()
317
- messageType, err := preg.GlobalTypes.FindMessageByName(messageName)
318
- switch err {
319
- case nil:
320
- vi.mi, _ = messageType.(*MessageInfo)
321
- case preg.NotFound:
322
- vi.typ = validationTypeBytes
323
- default:
324
- return out, ValidationUnknown
325
- }
326
- }
327
- break
328
- }
329
- // Possible extension field.
330
- //
331
- // TODO: We should return ValidationUnknown when:
332
- // 1. The resolver is not frozen. (More extensions may be added to it.)
333
- // 2. The resolver returns preg.NotFound.
334
- // In this case, a type added to the resolver in the future could cause
335
- // unmarshaling to begin failing. Supporting this requires some way to
336
- // determine if the resolver is frozen.
337
- xt, err := opts.resolver.FindExtensionByNumber(st.mi.Desc.FullName(), num)
338
- if err != nil && err != preg.NotFound {
339
- return out, ValidationUnknown
340
- }
341
- if err == nil {
342
- vi = getExtensionFieldInfo(xt).validation
343
- }
344
- }
345
- if vi.requiredBit != 0 {
346
- // Check that the field has a compatible wire type.
347
- // We only need to consider non-repeated field types,
348
- // since repeated fields (and maps) can never be required.
349
- ok := false
350
- switch vi.typ {
351
- case validationTypeVarint:
352
- ok = wtyp == protowire.VarintType
353
- case validationTypeFixed32:
354
- ok = wtyp == protowire.Fixed32Type
355
- case validationTypeFixed64:
356
- ok = wtyp == protowire.Fixed64Type
357
- case validationTypeBytes, validationTypeUTF8String, validationTypeMessage:
358
- ok = wtyp == protowire.BytesType
359
- case validationTypeGroup:
360
- ok = wtyp == protowire.StartGroupType
361
- }
362
- if ok {
363
- st.requiredMask |= vi.requiredBit
364
- }
365
- }
366
-
367
- switch wtyp {
368
- case protowire.VarintType:
369
- if len(b) >= 10 {
370
- switch {
371
- case b[0] < 0x80:
372
- b = b[1:]
373
- case b[1] < 0x80:
374
- b = b[2:]
375
- case b[2] < 0x80:
376
- b = b[3:]
377
- case b[3] < 0x80:
378
- b = b[4:]
379
- case b[4] < 0x80:
380
- b = b[5:]
381
- case b[5] < 0x80:
382
- b = b[6:]
383
- case b[6] < 0x80:
384
- b = b[7:]
385
- case b[7] < 0x80:
386
- b = b[8:]
387
- case b[8] < 0x80:
388
- b = b[9:]
389
- case b[9] < 0x80 && b[9] < 2:
390
- b = b[10:]
391
- default:
392
- return out, ValidationInvalid
393
- }
394
- } else {
395
- switch {
396
- case len(b) > 0 && b[0] < 0x80:
397
- b = b[1:]
398
- case len(b) > 1 && b[1] < 0x80:
399
- b = b[2:]
400
- case len(b) > 2 && b[2] < 0x80:
401
- b = b[3:]
402
- case len(b) > 3 && b[3] < 0x80:
403
- b = b[4:]
404
- case len(b) > 4 && b[4] < 0x80:
405
- b = b[5:]
406
- case len(b) > 5 && b[5] < 0x80:
407
- b = b[6:]
408
- case len(b) > 6 && b[6] < 0x80:
409
- b = b[7:]
410
- case len(b) > 7 && b[7] < 0x80:
411
- b = b[8:]
412
- case len(b) > 8 && b[8] < 0x80:
413
- b = b[9:]
414
- case len(b) > 9 && b[9] < 2:
415
- b = b[10:]
416
- default:
417
- return out, ValidationInvalid
418
- }
419
- }
420
- continue State
421
- case protowire.BytesType:
422
- var size uint64
423
- if len(b) >= 1 && b[0] < 0x80 {
424
- size = uint64(b[0])
425
- b = b[1:]
426
- } else if len(b) >= 2 && b[1] < 128 {
427
- size = uint64(b[0]&0x7f) + uint64(b[1])<<7
428
- b = b[2:]
429
- } else {
430
- var n int
431
- size, n = protowire.ConsumeVarint(b)
432
- if n < 0 {
433
- return out, ValidationInvalid
434
- }
435
- b = b[n:]
436
- }
437
- if size > uint64(len(b)) {
438
- return out, ValidationInvalid
439
- }
440
- v := b[:size]
441
- b = b[size:]
442
- switch vi.typ {
443
- case validationTypeMessage:
444
- if vi.mi == nil {
445
- return out, ValidationUnknown
446
- }
447
- vi.mi.init()
448
- fallthrough
449
- case validationTypeMap:
450
- if vi.mi != nil {
451
- vi.mi.init()
452
- }
453
- states = append(states, validationState{
454
- typ: vi.typ,
455
- keyType: vi.keyType,
456
- valType: vi.valType,
457
- mi: vi.mi,
458
- tail: b,
459
- })
460
- b = v
461
- continue State
462
- case validationTypeRepeatedVarint:
463
- // Packed field.
464
- for len(v) > 0 {
465
- _, n := protowire.ConsumeVarint(v)
466
- if n < 0 {
467
- return out, ValidationInvalid
468
- }
469
- v = v[n:]
470
- }
471
- case validationTypeRepeatedFixed32:
472
- // Packed field.
473
- if len(v)%4 != 0 {
474
- return out, ValidationInvalid
475
- }
476
- case validationTypeRepeatedFixed64:
477
- // Packed field.
478
- if len(v)%8 != 0 {
479
- return out, ValidationInvalid
480
- }
481
- case validationTypeUTF8String:
482
- if !utf8.Valid(v) {
483
- return out, ValidationInvalid
484
- }
485
- }
486
- case protowire.Fixed32Type:
487
- if len(b) < 4 {
488
- return out, ValidationInvalid
489
- }
490
- b = b[4:]
491
- case protowire.Fixed64Type:
492
- if len(b) < 8 {
493
- return out, ValidationInvalid
494
- }
495
- b = b[8:]
496
- case protowire.StartGroupType:
497
- switch {
498
- case vi.typ == validationTypeGroup:
499
- if vi.mi == nil {
500
- return out, ValidationUnknown
501
- }
502
- vi.mi.init()
503
- states = append(states, validationState{
504
- typ: validationTypeGroup,
505
- mi: vi.mi,
506
- endGroup: num,
507
- })
508
- continue State
509
- case flags.ProtoLegacy && vi.typ == validationTypeMessageSetItem:
510
- typeid, v, n, err := messageset.ConsumeFieldValue(b, false)
511
- if err != nil {
512
- return out, ValidationInvalid
513
- }
514
- xt, err := opts.resolver.FindExtensionByNumber(st.mi.Desc.FullName(), typeid)
515
- switch {
516
- case err == preg.NotFound:
517
- b = b[n:]
518
- case err != nil:
519
- return out, ValidationUnknown
520
- default:
521
- xvi := getExtensionFieldInfo(xt).validation
522
- if xvi.mi != nil {
523
- xvi.mi.init()
524
- }
525
- states = append(states, validationState{
526
- typ: xvi.typ,
527
- mi: xvi.mi,
528
- tail: b[n:],
529
- })
530
- b = v
531
- continue State
532
- }
533
- default:
534
- n := protowire.ConsumeFieldValue(num, wtyp, b)
535
- if n < 0 {
536
- return out, ValidationInvalid
537
- }
538
- b = b[n:]
539
- }
540
- default:
541
- return out, ValidationInvalid
542
- }
543
- }
544
- if st.endGroup != 0 {
545
- return out, ValidationInvalid
546
- }
547
- if len(b) != 0 {
548
- return out, ValidationInvalid
549
- }
550
- b = st.tail
551
- PopState:
552
- numRequiredFields := 0
553
- switch st.typ {
554
- case validationTypeMessage, validationTypeGroup:
555
- numRequiredFields = int(st.mi.numRequiredFields)
556
- case validationTypeMap:
557
- // If this is a map field with a message value that contains
558
- // required fields, require that the value be present.
559
- if st.mi != nil && st.mi.numRequiredFields > 0 {
560
- numRequiredFields = 1
561
- }
562
- }
563
- // If there are more than 64 required fields, this check will
564
- // always fail and we will report that the message is potentially
565
- // uninitialized.
566
- if numRequiredFields > 0 && bits.OnesCount64(st.requiredMask) != numRequiredFields {
567
- initialized = false
568
- }
569
- states = states[:len(states)-1]
570
- }
571
- out.n = start - len(b)
572
- if initialized {
573
- out.initialized = true
574
- }
575
- return out, ValidationValid
576
- }
@@ -1,74 +0,0 @@
1
- // Copyright 2019 The Go Authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style
3
- // license that can be found in the LICENSE file.
4
-
5
- package impl
6
-
7
- import (
8
- "fmt"
9
-
10
- pref "google.golang.org/protobuf/reflect/protoreflect"
11
- "google.golang.org/protobuf/reflect/protoregistry"
12
- )
13
-
14
- // weakFields adds methods to the exported WeakFields type for internal use.
15
- //
16
- // The exported type is an alias to an unnamed type, so methods can't be
17
- // defined directly on it.
18
- type weakFields WeakFields
19
-
20
- func (w weakFields) get(num pref.FieldNumber) (pref.ProtoMessage, bool) {
21
- m, ok := w[int32(num)]
22
- return m, ok
23
- }
24
-
25
- func (w *weakFields) set(num pref.FieldNumber, m pref.ProtoMessage) {
26
- if *w == nil {
27
- *w = make(weakFields)
28
- }
29
- (*w)[int32(num)] = m
30
- }
31
-
32
- func (w *weakFields) clear(num pref.FieldNumber) {
33
- delete(*w, int32(num))
34
- }
35
-
36
- func (Export) HasWeak(w WeakFields, num pref.FieldNumber) bool {
37
- _, ok := w[int32(num)]
38
- return ok
39
- }
40
-
41
- func (Export) ClearWeak(w *WeakFields, num pref.FieldNumber) {
42
- delete(*w, int32(num))
43
- }
44
-
45
- func (Export) GetWeak(w WeakFields, num pref.FieldNumber, name pref.FullName) pref.ProtoMessage {
46
- if m, ok := w[int32(num)]; ok {
47
- return m
48
- }
49
- mt, _ := protoregistry.GlobalTypes.FindMessageByName(name)
50
- if mt == nil {
51
- panic(fmt.Sprintf("message %v for weak field is not linked in", name))
52
- }
53
- return mt.Zero().Interface()
54
- }
55
-
56
- func (Export) SetWeak(w *WeakFields, num pref.FieldNumber, name pref.FullName, m pref.ProtoMessage) {
57
- if m != nil {
58
- mt, _ := protoregistry.GlobalTypes.FindMessageByName(name)
59
- if mt == nil {
60
- panic(fmt.Sprintf("message %v for weak field is not linked in", name))
61
- }
62
- if mt != m.ProtoReflect().Type() {
63
- panic(fmt.Sprintf("invalid message type for weak field: got %T, want %T", m, mt.Zero().Interface()))
64
- }
65
- }
66
- if m == nil || !m.ProtoReflect().IsValid() {
67
- delete(*w, int32(num))
68
- return
69
- }
70
- if *w == nil {
71
- *w = make(weakFields)
72
- }
73
- (*w)[int32(num)] = m
74
- }