planetscale 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +9 -1
  3. data/.github/workflows/gem-push.yml +9 -2
  4. data/.licenses/go/github.com/matoous/go-nanoid/v2.dep.yml +34 -0
  5. data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +1 -1
  6. data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +1 -1
  7. data/.licenses/go/go.uber.org/zap/buffer.dep.yml +1 -1
  8. data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +1 -1
  9. data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +1 -1
  10. data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +1 -1
  11. data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +1 -1
  12. data/.licenses/go/go.uber.org/zap.dep.yml +1 -1
  13. data/README.md +2 -0
  14. data/controller.go +21 -36
  15. data/go.mod +4 -3
  16. data/go.sum +32 -18
  17. data/lib/planetscale/version.rb +1 -1
  18. data/lib/planetscale.rb +2 -3
  19. data/planetscale.gemspec +1 -1
  20. data/proxy/planetscale-darwin.h +1 -1
  21. data/proxy/planetscale-darwin.so +0 -0
  22. data/proxy/planetscale-linux.h +1 -1
  23. data/proxy/planetscale-linux.so +0 -0
  24. data/proxy.go +1 -5
  25. metadata +3 -345
  26. data/vendor/github.com/armon/circbuf/.gitignore +0 -22
  27. data/vendor/github.com/armon/circbuf/LICENSE +0 -20
  28. data/vendor/github.com/armon/circbuf/README.md +0 -28
  29. data/vendor/github.com/armon/circbuf/circbuf.go +0 -92
  30. data/vendor/github.com/armon/circbuf/go.mod +0 -1
  31. data/vendor/github.com/golang/protobuf/AUTHORS +0 -3
  32. data/vendor/github.com/golang/protobuf/CONTRIBUTORS +0 -3
  33. data/vendor/github.com/golang/protobuf/LICENSE +0 -28
  34. data/vendor/github.com/golang/protobuf/proto/buffer.go +0 -324
  35. data/vendor/github.com/golang/protobuf/proto/defaults.go +0 -63
  36. data/vendor/github.com/golang/protobuf/proto/deprecated.go +0 -113
  37. data/vendor/github.com/golang/protobuf/proto/discard.go +0 -58
  38. data/vendor/github.com/golang/protobuf/proto/extensions.go +0 -356
  39. data/vendor/github.com/golang/protobuf/proto/properties.go +0 -306
  40. data/vendor/github.com/golang/protobuf/proto/proto.go +0 -167
  41. data/vendor/github.com/golang/protobuf/proto/registry.go +0 -317
  42. data/vendor/github.com/golang/protobuf/proto/text_decode.go +0 -801
  43. data/vendor/github.com/golang/protobuf/proto/text_encode.go +0 -560
  44. data/vendor/github.com/golang/protobuf/proto/wire.go +0 -78
  45. data/vendor/github.com/golang/protobuf/proto/wrappers.go +0 -34
  46. data/vendor/github.com/gorilla/mux/AUTHORS +0 -8
  47. data/vendor/github.com/gorilla/mux/LICENSE +0 -27
  48. data/vendor/github.com/gorilla/mux/README.md +0 -805
  49. data/vendor/github.com/gorilla/mux/doc.go +0 -306
  50. data/vendor/github.com/gorilla/mux/go.mod +0 -3
  51. data/vendor/github.com/gorilla/mux/middleware.go +0 -74
  52. data/vendor/github.com/gorilla/mux/mux.go +0 -606
  53. data/vendor/github.com/gorilla/mux/regexp.go +0 -388
  54. data/vendor/github.com/gorilla/mux/route.go +0 -736
  55. data/vendor/github.com/gorilla/mux/test_helpers.go +0 -19
  56. data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +0 -363
  57. data/vendor/github.com/hashicorp/go-cleanhttp/README.md +0 -30
  58. data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +0 -58
  59. data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +0 -20
  60. data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +0 -3
  61. data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +0 -48
  62. data/vendor/github.com/mitchellh/go-homedir/LICENSE +0 -21
  63. data/vendor/github.com/mitchellh/go-homedir/README.md +0 -14
  64. data/vendor/github.com/mitchellh/go-homedir/go.mod +0 -1
  65. data/vendor/github.com/mitchellh/go-homedir/homedir.go +0 -167
  66. data/vendor/github.com/pkg/errors/.gitignore +0 -24
  67. data/vendor/github.com/pkg/errors/.travis.yml +0 -10
  68. data/vendor/github.com/pkg/errors/LICENSE +0 -23
  69. data/vendor/github.com/pkg/errors/Makefile +0 -44
  70. data/vendor/github.com/pkg/errors/README.md +0 -59
  71. data/vendor/github.com/pkg/errors/appveyor.yml +0 -32
  72. data/vendor/github.com/pkg/errors/errors.go +0 -288
  73. data/vendor/github.com/pkg/errors/go113.go +0 -38
  74. data/vendor/github.com/pkg/errors/stack.go +0 -177
  75. data/vendor/github.com/planetscale/planetscale-go/LICENSE +0 -202
  76. data/vendor/github.com/planetscale/planetscale-go/planetscale/audit_logs.go +0 -136
  77. data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +0 -139
  78. data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +0 -252
  79. data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +0 -166
  80. data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +0 -312
  81. data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +0 -133
  82. data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +0 -368
  83. data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +0 -103
  84. data/vendor/github.com/planetscale/planetscale-go/planetscale/regions.go +0 -52
  85. data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +0 -163
  86. data/vendor/github.com/planetscale/sql-proxy/LICENSE +0 -202
  87. data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +0 -476
  88. data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +0 -73
  89. data/vendor/go.uber.org/atomic/.codecov.yml +0 -19
  90. data/vendor/go.uber.org/atomic/.gitignore +0 -12
  91. data/vendor/go.uber.org/atomic/.travis.yml +0 -27
  92. data/vendor/go.uber.org/atomic/CHANGELOG.md +0 -76
  93. data/vendor/go.uber.org/atomic/LICENSE.txt +0 -19
  94. data/vendor/go.uber.org/atomic/Makefile +0 -78
  95. data/vendor/go.uber.org/atomic/README.md +0 -63
  96. data/vendor/go.uber.org/atomic/bool.go +0 -81
  97. data/vendor/go.uber.org/atomic/bool_ext.go +0 -53
  98. data/vendor/go.uber.org/atomic/doc.go +0 -23
  99. data/vendor/go.uber.org/atomic/duration.go +0 -82
  100. data/vendor/go.uber.org/atomic/duration_ext.go +0 -40
  101. data/vendor/go.uber.org/atomic/error.go +0 -51
  102. data/vendor/go.uber.org/atomic/error_ext.go +0 -39
  103. data/vendor/go.uber.org/atomic/float64.go +0 -76
  104. data/vendor/go.uber.org/atomic/float64_ext.go +0 -47
  105. data/vendor/go.uber.org/atomic/gen.go +0 -26
  106. data/vendor/go.uber.org/atomic/go.mod +0 -8
  107. data/vendor/go.uber.org/atomic/go.sum +0 -9
  108. data/vendor/go.uber.org/atomic/int32.go +0 -102
  109. data/vendor/go.uber.org/atomic/int64.go +0 -102
  110. data/vendor/go.uber.org/atomic/nocmp.go +0 -35
  111. data/vendor/go.uber.org/atomic/string.go +0 -54
  112. data/vendor/go.uber.org/atomic/string_ext.go +0 -43
  113. data/vendor/go.uber.org/atomic/uint32.go +0 -102
  114. data/vendor/go.uber.org/atomic/uint64.go +0 -102
  115. data/vendor/go.uber.org/atomic/value.go +0 -31
  116. data/vendor/go.uber.org/multierr/.codecov.yml +0 -15
  117. data/vendor/go.uber.org/multierr/.gitignore +0 -4
  118. data/vendor/go.uber.org/multierr/.travis.yml +0 -23
  119. data/vendor/go.uber.org/multierr/CHANGELOG.md +0 -60
  120. data/vendor/go.uber.org/multierr/LICENSE.txt +0 -19
  121. data/vendor/go.uber.org/multierr/Makefile +0 -42
  122. data/vendor/go.uber.org/multierr/README.md +0 -23
  123. data/vendor/go.uber.org/multierr/error.go +0 -449
  124. data/vendor/go.uber.org/multierr/glide.yaml +0 -8
  125. data/vendor/go.uber.org/multierr/go.mod +0 -8
  126. data/vendor/go.uber.org/multierr/go.sum +0 -11
  127. data/vendor/go.uber.org/multierr/go113.go +0 -52
  128. data/vendor/go.uber.org/zap/.codecov.yml +0 -17
  129. data/vendor/go.uber.org/zap/.gitignore +0 -32
  130. data/vendor/go.uber.org/zap/.readme.tmpl +0 -109
  131. data/vendor/go.uber.org/zap/CHANGELOG.md +0 -492
  132. data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +0 -75
  133. data/vendor/go.uber.org/zap/CONTRIBUTING.md +0 -75
  134. data/vendor/go.uber.org/zap/FAQ.md +0 -164
  135. data/vendor/go.uber.org/zap/LICENSE.txt +0 -19
  136. data/vendor/go.uber.org/zap/Makefile +0 -73
  137. data/vendor/go.uber.org/zap/README.md +0 -134
  138. data/vendor/go.uber.org/zap/array.go +0 -320
  139. data/vendor/go.uber.org/zap/buffer/buffer.go +0 -141
  140. data/vendor/go.uber.org/zap/buffer/pool.go +0 -49
  141. data/vendor/go.uber.org/zap/checklicense.sh +0 -17
  142. data/vendor/go.uber.org/zap/config.go +0 -264
  143. data/vendor/go.uber.org/zap/doc.go +0 -113
  144. data/vendor/go.uber.org/zap/encoder.go +0 -79
  145. data/vendor/go.uber.org/zap/error.go +0 -80
  146. data/vendor/go.uber.org/zap/field.go +0 -549
  147. data/vendor/go.uber.org/zap/flag.go +0 -39
  148. data/vendor/go.uber.org/zap/glide.yaml +0 -34
  149. data/vendor/go.uber.org/zap/global.go +0 -168
  150. data/vendor/go.uber.org/zap/global_go112.go +0 -26
  151. data/vendor/go.uber.org/zap/global_prego112.go +0 -26
  152. data/vendor/go.uber.org/zap/go.mod +0 -14
  153. data/vendor/go.uber.org/zap/go.sum +0 -54
  154. data/vendor/go.uber.org/zap/http_handler.go +0 -132
  155. data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +0 -31
  156. data/vendor/go.uber.org/zap/internal/color/color.go +0 -44
  157. data/vendor/go.uber.org/zap/internal/exit/exit.go +0 -64
  158. data/vendor/go.uber.org/zap/level.go +0 -132
  159. data/vendor/go.uber.org/zap/logger.go +0 -348
  160. data/vendor/go.uber.org/zap/options.go +0 -148
  161. data/vendor/go.uber.org/zap/sink.go +0 -161
  162. data/vendor/go.uber.org/zap/stacktrace.go +0 -85
  163. data/vendor/go.uber.org/zap/sugar.go +0 -315
  164. data/vendor/go.uber.org/zap/time.go +0 -27
  165. data/vendor/go.uber.org/zap/writer.go +0 -99
  166. data/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go +0 -188
  167. data/vendor/go.uber.org/zap/zapcore/clock.go +0 -50
  168. data/vendor/go.uber.org/zap/zapcore/console_encoder.go +0 -161
  169. data/vendor/go.uber.org/zap/zapcore/core.go +0 -113
  170. data/vendor/go.uber.org/zap/zapcore/doc.go +0 -24
  171. data/vendor/go.uber.org/zap/zapcore/encoder.go +0 -443
  172. data/vendor/go.uber.org/zap/zapcore/entry.go +0 -264
  173. data/vendor/go.uber.org/zap/zapcore/error.go +0 -132
  174. data/vendor/go.uber.org/zap/zapcore/field.go +0 -233
  175. data/vendor/go.uber.org/zap/zapcore/hook.go +0 -68
  176. data/vendor/go.uber.org/zap/zapcore/increase_level.go +0 -66
  177. data/vendor/go.uber.org/zap/zapcore/json_encoder.go +0 -534
  178. data/vendor/go.uber.org/zap/zapcore/level.go +0 -175
  179. data/vendor/go.uber.org/zap/zapcore/level_strings.go +0 -46
  180. data/vendor/go.uber.org/zap/zapcore/marshaler.go +0 -61
  181. data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +0 -179
  182. data/vendor/go.uber.org/zap/zapcore/sampler.go +0 -208
  183. data/vendor/go.uber.org/zap/zapcore/tee.go +0 -81
  184. data/vendor/go.uber.org/zap/zapcore/write_syncer.go +0 -122
  185. data/vendor/golang.org/x/net/AUTHORS +0 -3
  186. data/vendor/golang.org/x/net/CONTRIBUTORS +0 -3
  187. data/vendor/golang.org/x/net/LICENSE +0 -27
  188. data/vendor/golang.org/x/net/PATENTS +0 -22
  189. data/vendor/golang.org/x/net/context/context.go +0 -56
  190. data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +0 -71
  191. data/vendor/golang.org/x/net/context/go17.go +0 -73
  192. data/vendor/golang.org/x/net/context/go19.go +0 -21
  193. data/vendor/golang.org/x/net/context/pre_go17.go +0 -301
  194. data/vendor/golang.org/x/net/context/pre_go19.go +0 -110
  195. data/vendor/golang.org/x/oauth2/.travis.yml +0 -13
  196. data/vendor/golang.org/x/oauth2/AUTHORS +0 -3
  197. data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +0 -26
  198. data/vendor/golang.org/x/oauth2/CONTRIBUTORS +0 -3
  199. data/vendor/golang.org/x/oauth2/LICENSE +0 -27
  200. data/vendor/golang.org/x/oauth2/README.md +0 -36
  201. data/vendor/golang.org/x/oauth2/go.mod +0 -9
  202. data/vendor/golang.org/x/oauth2/go.sum +0 -361
  203. data/vendor/golang.org/x/oauth2/internal/client_appengine.go +0 -14
  204. data/vendor/golang.org/x/oauth2/internal/doc.go +0 -6
  205. data/vendor/golang.org/x/oauth2/internal/oauth2.go +0 -37
  206. data/vendor/golang.org/x/oauth2/internal/token.go +0 -294
  207. data/vendor/golang.org/x/oauth2/internal/transport.go +0 -33
  208. data/vendor/golang.org/x/oauth2/oauth2.go +0 -381
  209. data/vendor/golang.org/x/oauth2/token.go +0 -178
  210. data/vendor/golang.org/x/oauth2/transport.go +0 -89
  211. data/vendor/google.golang.org/appengine/LICENSE +0 -202
  212. data/vendor/google.golang.org/appengine/internal/api.go +0 -678
  213. data/vendor/google.golang.org/appengine/internal/api_classic.go +0 -169
  214. data/vendor/google.golang.org/appengine/internal/api_common.go +0 -123
  215. data/vendor/google.golang.org/appengine/internal/app_id.go +0 -28
  216. data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +0 -308
  217. data/vendor/google.golang.org/appengine/internal/base/api_base.proto +0 -33
  218. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +0 -4367
  219. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +0 -551
  220. data/vendor/google.golang.org/appengine/internal/identity.go +0 -55
  221. data/vendor/google.golang.org/appengine/internal/identity_classic.go +0 -61
  222. data/vendor/google.golang.org/appengine/internal/identity_flex.go +0 -11
  223. data/vendor/google.golang.org/appengine/internal/identity_vm.go +0 -134
  224. data/vendor/google.golang.org/appengine/internal/internal.go +0 -110
  225. data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +0 -1313
  226. data/vendor/google.golang.org/appengine/internal/log/log_service.proto +0 -150
  227. data/vendor/google.golang.org/appengine/internal/main.go +0 -16
  228. data/vendor/google.golang.org/appengine/internal/main_common.go +0 -7
  229. data/vendor/google.golang.org/appengine/internal/main_vm.go +0 -69
  230. data/vendor/google.golang.org/appengine/internal/metadata.go +0 -60
  231. data/vendor/google.golang.org/appengine/internal/net.go +0 -56
  232. data/vendor/google.golang.org/appengine/internal/regen.sh +0 -40
  233. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +0 -361
  234. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +0 -44
  235. data/vendor/google.golang.org/appengine/internal/transaction.go +0 -115
  236. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +0 -527
  237. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +0 -64
  238. data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +0 -210
  239. data/vendor/google.golang.org/protobuf/AUTHORS +0 -3
  240. data/vendor/google.golang.org/protobuf/CONTRIBUTORS +0 -3
  241. data/vendor/google.golang.org/protobuf/LICENSE +0 -27
  242. data/vendor/google.golang.org/protobuf/PATENTS +0 -22
  243. data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +0 -773
  244. data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +0 -7
  245. data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +0 -371
  246. data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +0 -538
  247. data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +0 -318
  248. data/vendor/google.golang.org/protobuf/internal/descopts/options.go +0 -29
  249. data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +0 -69
  250. data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +0 -213
  251. data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +0 -241
  252. data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +0 -207
  253. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +0 -665
  254. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +0 -190
  255. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +0 -161
  256. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +0 -373
  257. data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +0 -29
  258. data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +0 -265
  259. data/vendor/google.golang.org/protobuf/internal/errors/errors.go +0 -89
  260. data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +0 -39
  261. data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +0 -12
  262. data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +0 -158
  263. data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +0 -631
  264. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +0 -471
  265. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +0 -704
  266. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +0 -450
  267. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +0 -356
  268. data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +0 -107
  269. data/vendor/google.golang.org/protobuf/internal/filetype/build.go +0 -297
  270. data/vendor/google.golang.org/protobuf/internal/flags/flags.go +0 -24
  271. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +0 -9
  272. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +0 -9
  273. data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +0 -34
  274. data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +0 -106
  275. data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +0 -829
  276. data/vendor/google.golang.org/protobuf/internal/genid/doc.go +0 -11
  277. data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +0 -34
  278. data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +0 -19
  279. data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +0 -31
  280. data/vendor/google.golang.org/protobuf/internal/genid/goname.go +0 -25
  281. data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +0 -16
  282. data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +0 -31
  283. data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +0 -116
  284. data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +0 -34
  285. data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +0 -184
  286. data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +0 -13
  287. data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +0 -175
  288. data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +0 -177
  289. data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +0 -141
  290. data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +0 -223
  291. data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +0 -830
  292. data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +0 -5637
  293. data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +0 -388
  294. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +0 -37
  295. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +0 -11
  296. data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +0 -217
  297. data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +0 -123
  298. data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +0 -209
  299. data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +0 -557
  300. data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +0 -17
  301. data/vendor/google.golang.org/protobuf/internal/impl/convert.go +0 -496
  302. data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +0 -141
  303. data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +0 -121
  304. data/vendor/google.golang.org/protobuf/internal/impl/decode.go +0 -276
  305. data/vendor/google.golang.org/protobuf/internal/impl/encode.go +0 -201
  306. data/vendor/google.golang.org/protobuf/internal/impl/enum.go +0 -21
  307. data/vendor/google.golang.org/protobuf/internal/impl/extension.go +0 -156
  308. data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +0 -219
  309. data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +0 -92
  310. data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +0 -176
  311. data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +0 -81
  312. data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +0 -558
  313. data/vendor/google.golang.org/protobuf/internal/impl/merge.go +0 -176
  314. data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +0 -209
  315. data/vendor/google.golang.org/protobuf/internal/impl/message.go +0 -276
  316. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +0 -465
  317. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +0 -543
  318. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +0 -249
  319. data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +0 -178
  320. data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +0 -174
  321. data/vendor/google.golang.org/protobuf/internal/impl/validate.go +0 -576
  322. data/vendor/google.golang.org/protobuf/internal/impl/weak.go +0 -74
  323. data/vendor/google.golang.org/protobuf/internal/order/order.go +0 -89
  324. data/vendor/google.golang.org/protobuf/internal/order/range.go +0 -115
  325. data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +0 -29
  326. data/vendor/google.golang.org/protobuf/internal/set/ints.go +0 -58
  327. data/vendor/google.golang.org/protobuf/internal/strs/strings.go +0 -196
  328. data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +0 -27
  329. data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +0 -94
  330. data/vendor/google.golang.org/protobuf/internal/version/version.go +0 -79
  331. data/vendor/google.golang.org/protobuf/proto/checkinit.go +0 -71
  332. data/vendor/google.golang.org/protobuf/proto/decode.go +0 -278
  333. data/vendor/google.golang.org/protobuf/proto/decode_gen.go +0 -603
  334. data/vendor/google.golang.org/protobuf/proto/doc.go +0 -94
  335. data/vendor/google.golang.org/protobuf/proto/encode.go +0 -319
  336. data/vendor/google.golang.org/protobuf/proto/encode_gen.go +0 -97
  337. data/vendor/google.golang.org/protobuf/proto/equal.go +0 -167
  338. data/vendor/google.golang.org/protobuf/proto/extension.go +0 -92
  339. data/vendor/google.golang.org/protobuf/proto/merge.go +0 -139
  340. data/vendor/google.golang.org/protobuf/proto/messageset.go +0 -93
  341. data/vendor/google.golang.org/protobuf/proto/proto.go +0 -43
  342. data/vendor/google.golang.org/protobuf/proto/proto_methods.go +0 -19
  343. data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +0 -19
  344. data/vendor/google.golang.org/protobuf/proto/reset.go +0 -43
  345. data/vendor/google.golang.org/protobuf/proto/size.go +0 -97
  346. data/vendor/google.golang.org/protobuf/proto/size_gen.go +0 -55
  347. data/vendor/google.golang.org/protobuf/proto/wrappers.go +0 -29
  348. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +0 -276
  349. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +0 -248
  350. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +0 -286
  351. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +0 -374
  352. data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +0 -252
  353. data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +0 -77
  354. data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +0 -504
  355. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +0 -128
  356. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +0 -461
  357. data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +0 -665
  358. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +0 -285
  359. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +0 -59
  360. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +0 -411
  361. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +0 -98
  362. data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +0 -869
  363. data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +0 -15
  364. data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +0 -167
  365. data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +0 -44
  366. data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +0 -56
  367. data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +0 -4039
  368. data/vendor/modules.txt +0 -79
@@ -1,175 +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
- // Code generated by generate-protos. DO NOT EDIT.
6
-
7
- package genid
8
-
9
- import (
10
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
11
- )
12
-
13
- const File_google_protobuf_wrappers_proto = "google/protobuf/wrappers.proto"
14
-
15
- // Names for google.protobuf.DoubleValue.
16
- const (
17
- DoubleValue_message_name protoreflect.Name = "DoubleValue"
18
- DoubleValue_message_fullname protoreflect.FullName = "google.protobuf.DoubleValue"
19
- )
20
-
21
- // Field names for google.protobuf.DoubleValue.
22
- const (
23
- DoubleValue_Value_field_name protoreflect.Name = "value"
24
-
25
- DoubleValue_Value_field_fullname protoreflect.FullName = "google.protobuf.DoubleValue.value"
26
- )
27
-
28
- // Field numbers for google.protobuf.DoubleValue.
29
- const (
30
- DoubleValue_Value_field_number protoreflect.FieldNumber = 1
31
- )
32
-
33
- // Names for google.protobuf.FloatValue.
34
- const (
35
- FloatValue_message_name protoreflect.Name = "FloatValue"
36
- FloatValue_message_fullname protoreflect.FullName = "google.protobuf.FloatValue"
37
- )
38
-
39
- // Field names for google.protobuf.FloatValue.
40
- const (
41
- FloatValue_Value_field_name protoreflect.Name = "value"
42
-
43
- FloatValue_Value_field_fullname protoreflect.FullName = "google.protobuf.FloatValue.value"
44
- )
45
-
46
- // Field numbers for google.protobuf.FloatValue.
47
- const (
48
- FloatValue_Value_field_number protoreflect.FieldNumber = 1
49
- )
50
-
51
- // Names for google.protobuf.Int64Value.
52
- const (
53
- Int64Value_message_name protoreflect.Name = "Int64Value"
54
- Int64Value_message_fullname protoreflect.FullName = "google.protobuf.Int64Value"
55
- )
56
-
57
- // Field names for google.protobuf.Int64Value.
58
- const (
59
- Int64Value_Value_field_name protoreflect.Name = "value"
60
-
61
- Int64Value_Value_field_fullname protoreflect.FullName = "google.protobuf.Int64Value.value"
62
- )
63
-
64
- // Field numbers for google.protobuf.Int64Value.
65
- const (
66
- Int64Value_Value_field_number protoreflect.FieldNumber = 1
67
- )
68
-
69
- // Names for google.protobuf.UInt64Value.
70
- const (
71
- UInt64Value_message_name protoreflect.Name = "UInt64Value"
72
- UInt64Value_message_fullname protoreflect.FullName = "google.protobuf.UInt64Value"
73
- )
74
-
75
- // Field names for google.protobuf.UInt64Value.
76
- const (
77
- UInt64Value_Value_field_name protoreflect.Name = "value"
78
-
79
- UInt64Value_Value_field_fullname protoreflect.FullName = "google.protobuf.UInt64Value.value"
80
- )
81
-
82
- // Field numbers for google.protobuf.UInt64Value.
83
- const (
84
- UInt64Value_Value_field_number protoreflect.FieldNumber = 1
85
- )
86
-
87
- // Names for google.protobuf.Int32Value.
88
- const (
89
- Int32Value_message_name protoreflect.Name = "Int32Value"
90
- Int32Value_message_fullname protoreflect.FullName = "google.protobuf.Int32Value"
91
- )
92
-
93
- // Field names for google.protobuf.Int32Value.
94
- const (
95
- Int32Value_Value_field_name protoreflect.Name = "value"
96
-
97
- Int32Value_Value_field_fullname protoreflect.FullName = "google.protobuf.Int32Value.value"
98
- )
99
-
100
- // Field numbers for google.protobuf.Int32Value.
101
- const (
102
- Int32Value_Value_field_number protoreflect.FieldNumber = 1
103
- )
104
-
105
- // Names for google.protobuf.UInt32Value.
106
- const (
107
- UInt32Value_message_name protoreflect.Name = "UInt32Value"
108
- UInt32Value_message_fullname protoreflect.FullName = "google.protobuf.UInt32Value"
109
- )
110
-
111
- // Field names for google.protobuf.UInt32Value.
112
- const (
113
- UInt32Value_Value_field_name protoreflect.Name = "value"
114
-
115
- UInt32Value_Value_field_fullname protoreflect.FullName = "google.protobuf.UInt32Value.value"
116
- )
117
-
118
- // Field numbers for google.protobuf.UInt32Value.
119
- const (
120
- UInt32Value_Value_field_number protoreflect.FieldNumber = 1
121
- )
122
-
123
- // Names for google.protobuf.BoolValue.
124
- const (
125
- BoolValue_message_name protoreflect.Name = "BoolValue"
126
- BoolValue_message_fullname protoreflect.FullName = "google.protobuf.BoolValue"
127
- )
128
-
129
- // Field names for google.protobuf.BoolValue.
130
- const (
131
- BoolValue_Value_field_name protoreflect.Name = "value"
132
-
133
- BoolValue_Value_field_fullname protoreflect.FullName = "google.protobuf.BoolValue.value"
134
- )
135
-
136
- // Field numbers for google.protobuf.BoolValue.
137
- const (
138
- BoolValue_Value_field_number protoreflect.FieldNumber = 1
139
- )
140
-
141
- // Names for google.protobuf.StringValue.
142
- const (
143
- StringValue_message_name protoreflect.Name = "StringValue"
144
- StringValue_message_fullname protoreflect.FullName = "google.protobuf.StringValue"
145
- )
146
-
147
- // Field names for google.protobuf.StringValue.
148
- const (
149
- StringValue_Value_field_name protoreflect.Name = "value"
150
-
151
- StringValue_Value_field_fullname protoreflect.FullName = "google.protobuf.StringValue.value"
152
- )
153
-
154
- // Field numbers for google.protobuf.StringValue.
155
- const (
156
- StringValue_Value_field_number protoreflect.FieldNumber = 1
157
- )
158
-
159
- // Names for google.protobuf.BytesValue.
160
- const (
161
- BytesValue_message_name protoreflect.Name = "BytesValue"
162
- BytesValue_message_fullname protoreflect.FullName = "google.protobuf.BytesValue"
163
- )
164
-
165
- // Field names for google.protobuf.BytesValue.
166
- const (
167
- BytesValue_Value_field_name protoreflect.Name = "value"
168
-
169
- BytesValue_Value_field_fullname protoreflect.FullName = "google.protobuf.BytesValue.value"
170
- )
171
-
172
- // Field numbers for google.protobuf.BytesValue.
173
- const (
174
- BytesValue_Value_field_number protoreflect.FieldNumber = 1
175
- )
@@ -1,177 +0,0 @@
1
- // Copyright 2018 The Go Authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style
3
- // license that can be found in the LICENSE file.
4
-
5
- package impl
6
-
7
- import (
8
- "fmt"
9
- "reflect"
10
- "strconv"
11
-
12
- "google.golang.org/protobuf/encoding/prototext"
13
- "google.golang.org/protobuf/internal/errors"
14
- "google.golang.org/protobuf/proto"
15
- pref "google.golang.org/protobuf/reflect/protoreflect"
16
- piface "google.golang.org/protobuf/runtime/protoiface"
17
- )
18
-
19
- // Export is a zero-length named type that exists only to export a set of
20
- // functions that we do not want to appear in godoc.
21
- type Export struct{}
22
-
23
- // NewError formats a string according to the format specifier and arguments and
24
- // returns an error that has a "proto" prefix.
25
- func (Export) NewError(f string, x ...interface{}) error {
26
- return errors.New(f, x...)
27
- }
28
-
29
- // enum is any enum type generated by protoc-gen-go
30
- // and must be a named int32 type.
31
- type enum = interface{}
32
-
33
- // EnumOf returns the protoreflect.Enum interface over e.
34
- // It returns nil if e is nil.
35
- func (Export) EnumOf(e enum) pref.Enum {
36
- switch e := e.(type) {
37
- case nil:
38
- return nil
39
- case pref.Enum:
40
- return e
41
- default:
42
- return legacyWrapEnum(reflect.ValueOf(e))
43
- }
44
- }
45
-
46
- // EnumDescriptorOf returns the protoreflect.EnumDescriptor for e.
47
- // It returns nil if e is nil.
48
- func (Export) EnumDescriptorOf(e enum) pref.EnumDescriptor {
49
- switch e := e.(type) {
50
- case nil:
51
- return nil
52
- case pref.Enum:
53
- return e.Descriptor()
54
- default:
55
- return LegacyLoadEnumDesc(reflect.TypeOf(e))
56
- }
57
- }
58
-
59
- // EnumTypeOf returns the protoreflect.EnumType for e.
60
- // It returns nil if e is nil.
61
- func (Export) EnumTypeOf(e enum) pref.EnumType {
62
- switch e := e.(type) {
63
- case nil:
64
- return nil
65
- case pref.Enum:
66
- return e.Type()
67
- default:
68
- return legacyLoadEnumType(reflect.TypeOf(e))
69
- }
70
- }
71
-
72
- // EnumStringOf returns the enum value as a string, either as the name if
73
- // the number is resolvable, or the number formatted as a string.
74
- func (Export) EnumStringOf(ed pref.EnumDescriptor, n pref.EnumNumber) string {
75
- ev := ed.Values().ByNumber(n)
76
- if ev != nil {
77
- return string(ev.Name())
78
- }
79
- return strconv.Itoa(int(n))
80
- }
81
-
82
- // message is any message type generated by protoc-gen-go
83
- // and must be a pointer to a named struct type.
84
- type message = interface{}
85
-
86
- // legacyMessageWrapper wraps a v2 message as a v1 message.
87
- type legacyMessageWrapper struct{ m pref.ProtoMessage }
88
-
89
- func (m legacyMessageWrapper) Reset() { proto.Reset(m.m) }
90
- func (m legacyMessageWrapper) String() string { return Export{}.MessageStringOf(m.m) }
91
- func (m legacyMessageWrapper) ProtoMessage() {}
92
-
93
- // ProtoMessageV1Of converts either a v1 or v2 message to a v1 message.
94
- // It returns nil if m is nil.
95
- func (Export) ProtoMessageV1Of(m message) piface.MessageV1 {
96
- switch mv := m.(type) {
97
- case nil:
98
- return nil
99
- case piface.MessageV1:
100
- return mv
101
- case unwrapper:
102
- return Export{}.ProtoMessageV1Of(mv.protoUnwrap())
103
- case pref.ProtoMessage:
104
- return legacyMessageWrapper{mv}
105
- default:
106
- panic(fmt.Sprintf("message %T is neither a v1 or v2 Message", m))
107
- }
108
- }
109
-
110
- func (Export) protoMessageV2Of(m message) pref.ProtoMessage {
111
- switch mv := m.(type) {
112
- case nil:
113
- return nil
114
- case pref.ProtoMessage:
115
- return mv
116
- case legacyMessageWrapper:
117
- return mv.m
118
- case piface.MessageV1:
119
- return nil
120
- default:
121
- panic(fmt.Sprintf("message %T is neither a v1 or v2 Message", m))
122
- }
123
- }
124
-
125
- // ProtoMessageV2Of converts either a v1 or v2 message to a v2 message.
126
- // It returns nil if m is nil.
127
- func (Export) ProtoMessageV2Of(m message) pref.ProtoMessage {
128
- if m == nil {
129
- return nil
130
- }
131
- if mv := (Export{}).protoMessageV2Of(m); mv != nil {
132
- return mv
133
- }
134
- return legacyWrapMessage(reflect.ValueOf(m)).Interface()
135
- }
136
-
137
- // MessageOf returns the protoreflect.Message interface over m.
138
- // It returns nil if m is nil.
139
- func (Export) MessageOf(m message) pref.Message {
140
- if m == nil {
141
- return nil
142
- }
143
- if mv := (Export{}).protoMessageV2Of(m); mv != nil {
144
- return mv.ProtoReflect()
145
- }
146
- return legacyWrapMessage(reflect.ValueOf(m))
147
- }
148
-
149
- // MessageDescriptorOf returns the protoreflect.MessageDescriptor for m.
150
- // It returns nil if m is nil.
151
- func (Export) MessageDescriptorOf(m message) pref.MessageDescriptor {
152
- if m == nil {
153
- return nil
154
- }
155
- if mv := (Export{}).protoMessageV2Of(m); mv != nil {
156
- return mv.ProtoReflect().Descriptor()
157
- }
158
- return LegacyLoadMessageDesc(reflect.TypeOf(m))
159
- }
160
-
161
- // MessageTypeOf returns the protoreflect.MessageType for m.
162
- // It returns nil if m is nil.
163
- func (Export) MessageTypeOf(m message) pref.MessageType {
164
- if m == nil {
165
- return nil
166
- }
167
- if mv := (Export{}).protoMessageV2Of(m); mv != nil {
168
- return mv.ProtoReflect().Type()
169
- }
170
- return legacyLoadMessageType(reflect.TypeOf(m), "")
171
- }
172
-
173
- // MessageStringOf returns the message value as a string,
174
- // which is the message serialized in the protobuf text format.
175
- func (Export) MessageStringOf(m pref.ProtoMessage) string {
176
- return prototext.MarshalOptions{Multiline: false}.Format(m)
177
- }
@@ -1,141 +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
- "sync"
9
-
10
- "google.golang.org/protobuf/internal/errors"
11
- pref "google.golang.org/protobuf/reflect/protoreflect"
12
- piface "google.golang.org/protobuf/runtime/protoiface"
13
- )
14
-
15
- func (mi *MessageInfo) checkInitialized(in piface.CheckInitializedInput) (piface.CheckInitializedOutput, error) {
16
- var p pointer
17
- if ms, ok := in.Message.(*messageState); ok {
18
- p = ms.pointer()
19
- } else {
20
- p = in.Message.(*messageReflectWrapper).pointer()
21
- }
22
- return piface.CheckInitializedOutput{}, mi.checkInitializedPointer(p)
23
- }
24
-
25
- func (mi *MessageInfo) checkInitializedPointer(p pointer) error {
26
- mi.init()
27
- if !mi.needsInitCheck {
28
- return nil
29
- }
30
- if p.IsNil() {
31
- for _, f := range mi.orderedCoderFields {
32
- if f.isRequired {
33
- return errors.RequiredNotSet(string(mi.Desc.Fields().ByNumber(f.num).FullName()))
34
- }
35
- }
36
- return nil
37
- }
38
- if mi.extensionOffset.IsValid() {
39
- e := p.Apply(mi.extensionOffset).Extensions()
40
- if err := mi.isInitExtensions(e); err != nil {
41
- return err
42
- }
43
- }
44
- for _, f := range mi.orderedCoderFields {
45
- if !f.isRequired && f.funcs.isInit == nil {
46
- continue
47
- }
48
- fptr := p.Apply(f.offset)
49
- if f.isPointer && fptr.Elem().IsNil() {
50
- if f.isRequired {
51
- return errors.RequiredNotSet(string(mi.Desc.Fields().ByNumber(f.num).FullName()))
52
- }
53
- continue
54
- }
55
- if f.funcs.isInit == nil {
56
- continue
57
- }
58
- if err := f.funcs.isInit(fptr, f); err != nil {
59
- return err
60
- }
61
- }
62
- return nil
63
- }
64
-
65
- func (mi *MessageInfo) isInitExtensions(ext *map[int32]ExtensionField) error {
66
- if ext == nil {
67
- return nil
68
- }
69
- for _, x := range *ext {
70
- ei := getExtensionFieldInfo(x.Type())
71
- if ei.funcs.isInit == nil {
72
- continue
73
- }
74
- v := x.Value()
75
- if !v.IsValid() {
76
- continue
77
- }
78
- if err := ei.funcs.isInit(v); err != nil {
79
- return err
80
- }
81
- }
82
- return nil
83
- }
84
-
85
- var (
86
- needsInitCheckMu sync.Mutex
87
- needsInitCheckMap sync.Map
88
- )
89
-
90
- // needsInitCheck reports whether a message needs to be checked for partial initialization.
91
- //
92
- // It returns true if the message transitively includes any required or extension fields.
93
- func needsInitCheck(md pref.MessageDescriptor) bool {
94
- if v, ok := needsInitCheckMap.Load(md); ok {
95
- if has, ok := v.(bool); ok {
96
- return has
97
- }
98
- }
99
- needsInitCheckMu.Lock()
100
- defer needsInitCheckMu.Unlock()
101
- return needsInitCheckLocked(md)
102
- }
103
-
104
- func needsInitCheckLocked(md pref.MessageDescriptor) (has bool) {
105
- if v, ok := needsInitCheckMap.Load(md); ok {
106
- // If has is true, we've previously determined that this message
107
- // needs init checks.
108
- //
109
- // If has is false, we've previously determined that it can never
110
- // be uninitialized.
111
- //
112
- // If has is not a bool, we've just encountered a cycle in the
113
- // message graph. In this case, it is safe to return false: If
114
- // the message does have required fields, we'll detect them later
115
- // in the graph traversal.
116
- has, ok := v.(bool)
117
- return ok && has
118
- }
119
- needsInitCheckMap.Store(md, struct{}{}) // avoid cycles while descending into this message
120
- defer func() {
121
- needsInitCheckMap.Store(md, has)
122
- }()
123
- if md.RequiredNumbers().Len() > 0 {
124
- return true
125
- }
126
- if md.ExtensionRanges().Len() > 0 {
127
- return true
128
- }
129
- for i := 0; i < md.Fields().Len(); i++ {
130
- fd := md.Fields().Get(i)
131
- // Map keys are never messages, so just consider the map value.
132
- if fd.IsMap() {
133
- fd = fd.MapValue()
134
- }
135
- fmd := fd.Message()
136
- if fmd != nil && needsInitCheckLocked(fmd) {
137
- return true
138
- }
139
- }
140
- return false
141
- }
@@ -1,223 +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
- "sync"
9
- "sync/atomic"
10
-
11
- "google.golang.org/protobuf/encoding/protowire"
12
- "google.golang.org/protobuf/internal/errors"
13
- pref "google.golang.org/protobuf/reflect/protoreflect"
14
- )
15
-
16
- type extensionFieldInfo struct {
17
- wiretag uint64
18
- tagsize int
19
- unmarshalNeedsValue bool
20
- funcs valueCoderFuncs
21
- validation validationInfo
22
- }
23
-
24
- var legacyExtensionFieldInfoCache sync.Map // map[protoreflect.ExtensionType]*extensionFieldInfo
25
-
26
- func getExtensionFieldInfo(xt pref.ExtensionType) *extensionFieldInfo {
27
- if xi, ok := xt.(*ExtensionInfo); ok {
28
- xi.lazyInit()
29
- return xi.info
30
- }
31
- return legacyLoadExtensionFieldInfo(xt)
32
- }
33
-
34
- // legacyLoadExtensionFieldInfo dynamically loads a *ExtensionInfo for xt.
35
- func legacyLoadExtensionFieldInfo(xt pref.ExtensionType) *extensionFieldInfo {
36
- if xi, ok := legacyExtensionFieldInfoCache.Load(xt); ok {
37
- return xi.(*extensionFieldInfo)
38
- }
39
- e := makeExtensionFieldInfo(xt.TypeDescriptor())
40
- if e, ok := legacyMessageTypeCache.LoadOrStore(xt, e); ok {
41
- return e.(*extensionFieldInfo)
42
- }
43
- return e
44
- }
45
-
46
- func makeExtensionFieldInfo(xd pref.ExtensionDescriptor) *extensionFieldInfo {
47
- var wiretag uint64
48
- if !xd.IsPacked() {
49
- wiretag = protowire.EncodeTag(xd.Number(), wireTypes[xd.Kind()])
50
- } else {
51
- wiretag = protowire.EncodeTag(xd.Number(), protowire.BytesType)
52
- }
53
- e := &extensionFieldInfo{
54
- wiretag: wiretag,
55
- tagsize: protowire.SizeVarint(wiretag),
56
- funcs: encoderFuncsForValue(xd),
57
- }
58
- // Does the unmarshal function need a value passed to it?
59
- // This is true for composite types, where we pass in a message, list, or map to fill in,
60
- // and for enums, where we pass in a prototype value to specify the concrete enum type.
61
- switch xd.Kind() {
62
- case pref.MessageKind, pref.GroupKind, pref.EnumKind:
63
- e.unmarshalNeedsValue = true
64
- default:
65
- if xd.Cardinality() == pref.Repeated {
66
- e.unmarshalNeedsValue = true
67
- }
68
- }
69
- return e
70
- }
71
-
72
- type lazyExtensionValue struct {
73
- atomicOnce uint32 // atomically set if value is valid
74
- mu sync.Mutex
75
- xi *extensionFieldInfo
76
- value pref.Value
77
- b []byte
78
- fn func() pref.Value
79
- }
80
-
81
- type ExtensionField struct {
82
- typ pref.ExtensionType
83
-
84
- // value is either the value of GetValue,
85
- // or a *lazyExtensionValue that then returns the value of GetValue.
86
- value pref.Value
87
- lazy *lazyExtensionValue
88
- }
89
-
90
- func (f *ExtensionField) appendLazyBytes(xt pref.ExtensionType, xi *extensionFieldInfo, num protowire.Number, wtyp protowire.Type, b []byte) {
91
- if f.lazy == nil {
92
- f.lazy = &lazyExtensionValue{xi: xi}
93
- }
94
- f.typ = xt
95
- f.lazy.xi = xi
96
- f.lazy.b = protowire.AppendTag(f.lazy.b, num, wtyp)
97
- f.lazy.b = append(f.lazy.b, b...)
98
- }
99
-
100
- func (f *ExtensionField) canLazy(xt pref.ExtensionType) bool {
101
- if f.typ == nil {
102
- return true
103
- }
104
- if f.typ == xt && f.lazy != nil && atomic.LoadUint32(&f.lazy.atomicOnce) == 0 {
105
- return true
106
- }
107
- return false
108
- }
109
-
110
- func (f *ExtensionField) lazyInit() {
111
- f.lazy.mu.Lock()
112
- defer f.lazy.mu.Unlock()
113
- if atomic.LoadUint32(&f.lazy.atomicOnce) == 1 {
114
- return
115
- }
116
- if f.lazy.xi != nil {
117
- b := f.lazy.b
118
- val := f.typ.New()
119
- for len(b) > 0 {
120
- var tag uint64
121
- if b[0] < 0x80 {
122
- tag = uint64(b[0])
123
- b = b[1:]
124
- } else if len(b) >= 2 && b[1] < 128 {
125
- tag = uint64(b[0]&0x7f) + uint64(b[1])<<7
126
- b = b[2:]
127
- } else {
128
- var n int
129
- tag, n = protowire.ConsumeVarint(b)
130
- if n < 0 {
131
- panic(errors.New("bad tag in lazy extension decoding"))
132
- }
133
- b = b[n:]
134
- }
135
- num := protowire.Number(tag >> 3)
136
- wtyp := protowire.Type(tag & 7)
137
- var out unmarshalOutput
138
- var err error
139
- val, out, err = f.lazy.xi.funcs.unmarshal(b, val, num, wtyp, lazyUnmarshalOptions)
140
- if err != nil {
141
- panic(errors.New("decode failure in lazy extension decoding: %v", err))
142
- }
143
- b = b[out.n:]
144
- }
145
- f.lazy.value = val
146
- } else {
147
- f.lazy.value = f.lazy.fn()
148
- }
149
- f.lazy.xi = nil
150
- f.lazy.fn = nil
151
- f.lazy.b = nil
152
- atomic.StoreUint32(&f.lazy.atomicOnce, 1)
153
- }
154
-
155
- // Set sets the type and value of the extension field.
156
- // This must not be called concurrently.
157
- func (f *ExtensionField) Set(t pref.ExtensionType, v pref.Value) {
158
- f.typ = t
159
- f.value = v
160
- f.lazy = nil
161
- }
162
-
163
- // SetLazy sets the type and a value that is to be lazily evaluated upon first use.
164
- // This must not be called concurrently.
165
- func (f *ExtensionField) SetLazy(t pref.ExtensionType, fn func() pref.Value) {
166
- f.typ = t
167
- f.lazy = &lazyExtensionValue{fn: fn}
168
- }
169
-
170
- // Value returns the value of the extension field.
171
- // This may be called concurrently.
172
- func (f *ExtensionField) Value() pref.Value {
173
- if f.lazy != nil {
174
- if atomic.LoadUint32(&f.lazy.atomicOnce) == 0 {
175
- f.lazyInit()
176
- }
177
- return f.lazy.value
178
- }
179
- return f.value
180
- }
181
-
182
- // Type returns the type of the extension field.
183
- // This may be called concurrently.
184
- func (f ExtensionField) Type() pref.ExtensionType {
185
- return f.typ
186
- }
187
-
188
- // IsSet returns whether the extension field is set.
189
- // This may be called concurrently.
190
- func (f ExtensionField) IsSet() bool {
191
- return f.typ != nil
192
- }
193
-
194
- // IsLazy reports whether a field is lazily encoded.
195
- // It is exported for testing.
196
- func IsLazy(m pref.Message, fd pref.FieldDescriptor) bool {
197
- var mi *MessageInfo
198
- var p pointer
199
- switch m := m.(type) {
200
- case *messageState:
201
- mi = m.messageInfo()
202
- p = m.pointer()
203
- case *messageReflectWrapper:
204
- mi = m.messageInfo()
205
- p = m.pointer()
206
- default:
207
- return false
208
- }
209
- xd, ok := fd.(pref.ExtensionTypeDescriptor)
210
- if !ok {
211
- return false
212
- }
213
- xt := xd.Type()
214
- ext := mi.extensionMap(p)
215
- if ext == nil {
216
- return false
217
- }
218
- f, ok := (*ext)[int32(fd.Number())]
219
- if !ok {
220
- return false
221
- }
222
- return f.typ == xt && f.lazy != nil && atomic.LoadUint32(&f.lazy.atomicOnce) == 0
223
- }