planetscale 0.3.1 → 0.3.3

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