planetscale 0.2.0 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. checksums.yaml +4 -4
  2. data/.buildkite/pipeline.yml +21 -0
  3. data/.github/workflows/ci.yml +9 -1
  4. data/.github/workflows/gem-push.yml +9 -2
  5. data/.licenses/go/github.com/matoous/go-nanoid/v2.dep.yml +34 -0
  6. data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +56 -3
  7. data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +205 -172
  8. data/.licenses/go/go.uber.org/zap/buffer.dep.yml +1 -1
  9. data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +1 -1
  10. data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +1 -1
  11. data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +1 -1
  12. data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +1 -1
  13. data/.licenses/go/go.uber.org/zap.dep.yml +1 -1
  14. data/README.md +11 -8
  15. data/controller.go +24 -26
  16. data/go.mod +4 -3
  17. data/go.sum +42 -27
  18. data/lib/generators/planetscale/install_generator.rb +8 -6
  19. data/lib/planetscale/version.rb +1 -1
  20. data/lib/planetscale.rb +14 -15
  21. data/planetscale.gemspec +2 -2
  22. data/proxy/planetscale-darwin.h +1 -1
  23. data/proxy/planetscale-darwin.so +0 -0
  24. data/proxy/planetscale-linux.h +1 -1
  25. data/proxy/planetscale-linux.so +0 -0
  26. data/proxy.go +1 -5
  27. metadata +6 -342
  28. data/vendor/github.com/armon/circbuf/.gitignore +0 -22
  29. data/vendor/github.com/armon/circbuf/LICENSE +0 -20
  30. data/vendor/github.com/armon/circbuf/README.md +0 -28
  31. data/vendor/github.com/armon/circbuf/circbuf.go +0 -92
  32. data/vendor/github.com/armon/circbuf/go.mod +0 -1
  33. data/vendor/github.com/golang/protobuf/AUTHORS +0 -3
  34. data/vendor/github.com/golang/protobuf/CONTRIBUTORS +0 -3
  35. data/vendor/github.com/golang/protobuf/LICENSE +0 -28
  36. data/vendor/github.com/golang/protobuf/proto/buffer.go +0 -324
  37. data/vendor/github.com/golang/protobuf/proto/defaults.go +0 -63
  38. data/vendor/github.com/golang/protobuf/proto/deprecated.go +0 -113
  39. data/vendor/github.com/golang/protobuf/proto/discard.go +0 -58
  40. data/vendor/github.com/golang/protobuf/proto/extensions.go +0 -356
  41. data/vendor/github.com/golang/protobuf/proto/properties.go +0 -306
  42. data/vendor/github.com/golang/protobuf/proto/proto.go +0 -167
  43. data/vendor/github.com/golang/protobuf/proto/registry.go +0 -317
  44. data/vendor/github.com/golang/protobuf/proto/text_decode.go +0 -801
  45. data/vendor/github.com/golang/protobuf/proto/text_encode.go +0 -560
  46. data/vendor/github.com/golang/protobuf/proto/wire.go +0 -78
  47. data/vendor/github.com/golang/protobuf/proto/wrappers.go +0 -34
  48. data/vendor/github.com/gorilla/mux/AUTHORS +0 -8
  49. data/vendor/github.com/gorilla/mux/LICENSE +0 -27
  50. data/vendor/github.com/gorilla/mux/README.md +0 -805
  51. data/vendor/github.com/gorilla/mux/doc.go +0 -306
  52. data/vendor/github.com/gorilla/mux/go.mod +0 -3
  53. data/vendor/github.com/gorilla/mux/middleware.go +0 -74
  54. data/vendor/github.com/gorilla/mux/mux.go +0 -606
  55. data/vendor/github.com/gorilla/mux/regexp.go +0 -388
  56. data/vendor/github.com/gorilla/mux/route.go +0 -736
  57. data/vendor/github.com/gorilla/mux/test_helpers.go +0 -19
  58. data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +0 -363
  59. data/vendor/github.com/hashicorp/go-cleanhttp/README.md +0 -30
  60. data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +0 -58
  61. data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +0 -20
  62. data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +0 -3
  63. data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +0 -48
  64. data/vendor/github.com/mitchellh/go-homedir/LICENSE +0 -21
  65. data/vendor/github.com/mitchellh/go-homedir/README.md +0 -14
  66. data/vendor/github.com/mitchellh/go-homedir/go.mod +0 -1
  67. data/vendor/github.com/mitchellh/go-homedir/homedir.go +0 -167
  68. data/vendor/github.com/pkg/errors/.gitignore +0 -24
  69. data/vendor/github.com/pkg/errors/.travis.yml +0 -10
  70. data/vendor/github.com/pkg/errors/LICENSE +0 -23
  71. data/vendor/github.com/pkg/errors/Makefile +0 -44
  72. data/vendor/github.com/pkg/errors/README.md +0 -59
  73. data/vendor/github.com/pkg/errors/appveyor.yml +0 -32
  74. data/vendor/github.com/pkg/errors/errors.go +0 -288
  75. data/vendor/github.com/pkg/errors/go113.go +0 -38
  76. data/vendor/github.com/pkg/errors/stack.go +0 -177
  77. data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +0 -139
  78. data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +0 -258
  79. data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +0 -142
  80. data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +0 -305
  81. data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +0 -131
  82. data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +0 -368
  83. data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +0 -78
  84. data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +0 -163
  85. data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +0 -467
  86. data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +0 -73
  87. data/vendor/go.uber.org/atomic/.codecov.yml +0 -19
  88. data/vendor/go.uber.org/atomic/.gitignore +0 -12
  89. data/vendor/go.uber.org/atomic/.travis.yml +0 -27
  90. data/vendor/go.uber.org/atomic/CHANGELOG.md +0 -76
  91. data/vendor/go.uber.org/atomic/LICENSE.txt +0 -19
  92. data/vendor/go.uber.org/atomic/Makefile +0 -78
  93. data/vendor/go.uber.org/atomic/README.md +0 -63
  94. data/vendor/go.uber.org/atomic/bool.go +0 -81
  95. data/vendor/go.uber.org/atomic/bool_ext.go +0 -53
  96. data/vendor/go.uber.org/atomic/doc.go +0 -23
  97. data/vendor/go.uber.org/atomic/duration.go +0 -82
  98. data/vendor/go.uber.org/atomic/duration_ext.go +0 -40
  99. data/vendor/go.uber.org/atomic/error.go +0 -51
  100. data/vendor/go.uber.org/atomic/error_ext.go +0 -39
  101. data/vendor/go.uber.org/atomic/float64.go +0 -76
  102. data/vendor/go.uber.org/atomic/float64_ext.go +0 -47
  103. data/vendor/go.uber.org/atomic/gen.go +0 -26
  104. data/vendor/go.uber.org/atomic/go.mod +0 -8
  105. data/vendor/go.uber.org/atomic/go.sum +0 -9
  106. data/vendor/go.uber.org/atomic/int32.go +0 -102
  107. data/vendor/go.uber.org/atomic/int64.go +0 -102
  108. data/vendor/go.uber.org/atomic/nocmp.go +0 -35
  109. data/vendor/go.uber.org/atomic/string.go +0 -54
  110. data/vendor/go.uber.org/atomic/string_ext.go +0 -43
  111. data/vendor/go.uber.org/atomic/uint32.go +0 -102
  112. data/vendor/go.uber.org/atomic/uint64.go +0 -102
  113. data/vendor/go.uber.org/atomic/value.go +0 -31
  114. data/vendor/go.uber.org/multierr/.codecov.yml +0 -15
  115. data/vendor/go.uber.org/multierr/.gitignore +0 -4
  116. data/vendor/go.uber.org/multierr/.travis.yml +0 -23
  117. data/vendor/go.uber.org/multierr/CHANGELOG.md +0 -60
  118. data/vendor/go.uber.org/multierr/LICENSE.txt +0 -19
  119. data/vendor/go.uber.org/multierr/Makefile +0 -42
  120. data/vendor/go.uber.org/multierr/README.md +0 -23
  121. data/vendor/go.uber.org/multierr/error.go +0 -449
  122. data/vendor/go.uber.org/multierr/glide.yaml +0 -8
  123. data/vendor/go.uber.org/multierr/go.mod +0 -8
  124. data/vendor/go.uber.org/multierr/go.sum +0 -11
  125. data/vendor/go.uber.org/multierr/go113.go +0 -52
  126. data/vendor/go.uber.org/zap/.codecov.yml +0 -17
  127. data/vendor/go.uber.org/zap/.gitignore +0 -32
  128. data/vendor/go.uber.org/zap/.readme.tmpl +0 -109
  129. data/vendor/go.uber.org/zap/.travis.yml +0 -23
  130. data/vendor/go.uber.org/zap/CHANGELOG.md +0 -432
  131. data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +0 -75
  132. data/vendor/go.uber.org/zap/CONTRIBUTING.md +0 -81
  133. data/vendor/go.uber.org/zap/FAQ.md +0 -156
  134. data/vendor/go.uber.org/zap/LICENSE.txt +0 -19
  135. data/vendor/go.uber.org/zap/Makefile +0 -63
  136. data/vendor/go.uber.org/zap/README.md +0 -134
  137. data/vendor/go.uber.org/zap/array.go +0 -320
  138. data/vendor/go.uber.org/zap/buffer/buffer.go +0 -123
  139. data/vendor/go.uber.org/zap/buffer/pool.go +0 -49
  140. data/vendor/go.uber.org/zap/checklicense.sh +0 -17
  141. data/vendor/go.uber.org/zap/config.go +0 -264
  142. data/vendor/go.uber.org/zap/doc.go +0 -113
  143. data/vendor/go.uber.org/zap/encoder.go +0 -79
  144. data/vendor/go.uber.org/zap/error.go +0 -80
  145. data/vendor/go.uber.org/zap/field.go +0 -539
  146. data/vendor/go.uber.org/zap/flag.go +0 -39
  147. data/vendor/go.uber.org/zap/glide.yaml +0 -34
  148. data/vendor/go.uber.org/zap/global.go +0 -168
  149. data/vendor/go.uber.org/zap/global_go112.go +0 -26
  150. data/vendor/go.uber.org/zap/global_prego112.go +0 -26
  151. data/vendor/go.uber.org/zap/go.mod +0 -13
  152. data/vendor/go.uber.org/zap/go.sum +0 -56
  153. data/vendor/go.uber.org/zap/http_handler.go +0 -81
  154. data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +0 -31
  155. data/vendor/go.uber.org/zap/internal/color/color.go +0 -44
  156. data/vendor/go.uber.org/zap/internal/exit/exit.go +0 -64
  157. data/vendor/go.uber.org/zap/level.go +0 -132
  158. data/vendor/go.uber.org/zap/logger.go +0 -344
  159. data/vendor/go.uber.org/zap/options.go +0 -140
  160. data/vendor/go.uber.org/zap/sink.go +0 -161
  161. data/vendor/go.uber.org/zap/stacktrace.go +0 -85
  162. data/vendor/go.uber.org/zap/sugar.go +0 -304
  163. data/vendor/go.uber.org/zap/time.go +0 -27
  164. data/vendor/go.uber.org/zap/writer.go +0 -99
  165. data/vendor/go.uber.org/zap/zapcore/console_encoder.go +0 -161
  166. data/vendor/go.uber.org/zap/zapcore/core.go +0 -113
  167. data/vendor/go.uber.org/zap/zapcore/doc.go +0 -24
  168. data/vendor/go.uber.org/zap/zapcore/encoder.go +0 -443
  169. data/vendor/go.uber.org/zap/zapcore/entry.go +0 -264
  170. data/vendor/go.uber.org/zap/zapcore/error.go +0 -115
  171. data/vendor/go.uber.org/zap/zapcore/field.go +0 -227
  172. data/vendor/go.uber.org/zap/zapcore/hook.go +0 -68
  173. data/vendor/go.uber.org/zap/zapcore/increase_level.go +0 -66
  174. data/vendor/go.uber.org/zap/zapcore/json_encoder.go +0 -534
  175. data/vendor/go.uber.org/zap/zapcore/level.go +0 -175
  176. data/vendor/go.uber.org/zap/zapcore/level_strings.go +0 -46
  177. data/vendor/go.uber.org/zap/zapcore/marshaler.go +0 -61
  178. data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +0 -179
  179. data/vendor/go.uber.org/zap/zapcore/sampler.go +0 -208
  180. data/vendor/go.uber.org/zap/zapcore/tee.go +0 -81
  181. data/vendor/go.uber.org/zap/zapcore/write_syncer.go +0 -123
  182. data/vendor/golang.org/x/net/AUTHORS +0 -3
  183. data/vendor/golang.org/x/net/CONTRIBUTORS +0 -3
  184. data/vendor/golang.org/x/net/LICENSE +0 -27
  185. data/vendor/golang.org/x/net/PATENTS +0 -22
  186. data/vendor/golang.org/x/net/context/context.go +0 -56
  187. data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +0 -71
  188. data/vendor/golang.org/x/net/context/go17.go +0 -73
  189. data/vendor/golang.org/x/net/context/go19.go +0 -21
  190. data/vendor/golang.org/x/net/context/pre_go17.go +0 -301
  191. data/vendor/golang.org/x/net/context/pre_go19.go +0 -110
  192. data/vendor/golang.org/x/oauth2/.travis.yml +0 -13
  193. data/vendor/golang.org/x/oauth2/AUTHORS +0 -3
  194. data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +0 -26
  195. data/vendor/golang.org/x/oauth2/CONTRIBUTORS +0 -3
  196. data/vendor/golang.org/x/oauth2/LICENSE +0 -27
  197. data/vendor/golang.org/x/oauth2/README.md +0 -36
  198. data/vendor/golang.org/x/oauth2/go.mod +0 -9
  199. data/vendor/golang.org/x/oauth2/go.sum +0 -361
  200. data/vendor/golang.org/x/oauth2/internal/client_appengine.go +0 -14
  201. data/vendor/golang.org/x/oauth2/internal/doc.go +0 -6
  202. data/vendor/golang.org/x/oauth2/internal/oauth2.go +0 -37
  203. data/vendor/golang.org/x/oauth2/internal/token.go +0 -294
  204. data/vendor/golang.org/x/oauth2/internal/transport.go +0 -33
  205. data/vendor/golang.org/x/oauth2/oauth2.go +0 -381
  206. data/vendor/golang.org/x/oauth2/token.go +0 -178
  207. data/vendor/golang.org/x/oauth2/transport.go +0 -89
  208. data/vendor/google.golang.org/appengine/LICENSE +0 -202
  209. data/vendor/google.golang.org/appengine/internal/api.go +0 -678
  210. data/vendor/google.golang.org/appengine/internal/api_classic.go +0 -169
  211. data/vendor/google.golang.org/appengine/internal/api_common.go +0 -123
  212. data/vendor/google.golang.org/appengine/internal/app_id.go +0 -28
  213. data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +0 -308
  214. data/vendor/google.golang.org/appengine/internal/base/api_base.proto +0 -33
  215. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +0 -4367
  216. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +0 -551
  217. data/vendor/google.golang.org/appengine/internal/identity.go +0 -55
  218. data/vendor/google.golang.org/appengine/internal/identity_classic.go +0 -61
  219. data/vendor/google.golang.org/appengine/internal/identity_flex.go +0 -11
  220. data/vendor/google.golang.org/appengine/internal/identity_vm.go +0 -134
  221. data/vendor/google.golang.org/appengine/internal/internal.go +0 -110
  222. data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +0 -1313
  223. data/vendor/google.golang.org/appengine/internal/log/log_service.proto +0 -150
  224. data/vendor/google.golang.org/appengine/internal/main.go +0 -16
  225. data/vendor/google.golang.org/appengine/internal/main_common.go +0 -7
  226. data/vendor/google.golang.org/appengine/internal/main_vm.go +0 -69
  227. data/vendor/google.golang.org/appengine/internal/metadata.go +0 -60
  228. data/vendor/google.golang.org/appengine/internal/net.go +0 -56
  229. data/vendor/google.golang.org/appengine/internal/regen.sh +0 -40
  230. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +0 -361
  231. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +0 -44
  232. data/vendor/google.golang.org/appengine/internal/transaction.go +0 -115
  233. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +0 -527
  234. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +0 -64
  235. data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +0 -210
  236. data/vendor/google.golang.org/protobuf/AUTHORS +0 -3
  237. data/vendor/google.golang.org/protobuf/CONTRIBUTORS +0 -3
  238. data/vendor/google.golang.org/protobuf/LICENSE +0 -27
  239. data/vendor/google.golang.org/protobuf/PATENTS +0 -22
  240. data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +0 -773
  241. data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +0 -7
  242. data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +0 -371
  243. data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +0 -538
  244. data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +0 -318
  245. data/vendor/google.golang.org/protobuf/internal/descopts/options.go +0 -29
  246. data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +0 -69
  247. data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +0 -213
  248. data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +0 -241
  249. data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +0 -207
  250. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +0 -665
  251. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +0 -190
  252. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +0 -161
  253. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +0 -373
  254. data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +0 -29
  255. data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +0 -265
  256. data/vendor/google.golang.org/protobuf/internal/errors/errors.go +0 -89
  257. data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +0 -39
  258. data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +0 -12
  259. data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +0 -158
  260. data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +0 -631
  261. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +0 -471
  262. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +0 -704
  263. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +0 -450
  264. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +0 -356
  265. data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +0 -107
  266. data/vendor/google.golang.org/protobuf/internal/filetype/build.go +0 -297
  267. data/vendor/google.golang.org/protobuf/internal/flags/flags.go +0 -24
  268. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +0 -9
  269. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +0 -9
  270. data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +0 -34
  271. data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +0 -106
  272. data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +0 -829
  273. data/vendor/google.golang.org/protobuf/internal/genid/doc.go +0 -11
  274. data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +0 -34
  275. data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +0 -19
  276. data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +0 -31
  277. data/vendor/google.golang.org/protobuf/internal/genid/goname.go +0 -25
  278. data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +0 -16
  279. data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +0 -31
  280. data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +0 -116
  281. data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +0 -34
  282. data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +0 -184
  283. data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +0 -13
  284. data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +0 -175
  285. data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +0 -177
  286. data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +0 -141
  287. data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +0 -223
  288. data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +0 -830
  289. data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +0 -5637
  290. data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +0 -388
  291. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +0 -37
  292. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +0 -11
  293. data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +0 -217
  294. data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +0 -123
  295. data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +0 -209
  296. data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +0 -557
  297. data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +0 -17
  298. data/vendor/google.golang.org/protobuf/internal/impl/convert.go +0 -496
  299. data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +0 -141
  300. data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +0 -121
  301. data/vendor/google.golang.org/protobuf/internal/impl/decode.go +0 -276
  302. data/vendor/google.golang.org/protobuf/internal/impl/encode.go +0 -201
  303. data/vendor/google.golang.org/protobuf/internal/impl/enum.go +0 -21
  304. data/vendor/google.golang.org/protobuf/internal/impl/extension.go +0 -156
  305. data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +0 -219
  306. data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +0 -92
  307. data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +0 -176
  308. data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +0 -81
  309. data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +0 -558
  310. data/vendor/google.golang.org/protobuf/internal/impl/merge.go +0 -176
  311. data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +0 -209
  312. data/vendor/google.golang.org/protobuf/internal/impl/message.go +0 -276
  313. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +0 -465
  314. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +0 -543
  315. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +0 -249
  316. data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +0 -178
  317. data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +0 -174
  318. data/vendor/google.golang.org/protobuf/internal/impl/validate.go +0 -576
  319. data/vendor/google.golang.org/protobuf/internal/impl/weak.go +0 -74
  320. data/vendor/google.golang.org/protobuf/internal/order/order.go +0 -89
  321. data/vendor/google.golang.org/protobuf/internal/order/range.go +0 -115
  322. data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +0 -29
  323. data/vendor/google.golang.org/protobuf/internal/set/ints.go +0 -58
  324. data/vendor/google.golang.org/protobuf/internal/strs/strings.go +0 -196
  325. data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +0 -27
  326. data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +0 -94
  327. data/vendor/google.golang.org/protobuf/internal/version/version.go +0 -79
  328. data/vendor/google.golang.org/protobuf/proto/checkinit.go +0 -71
  329. data/vendor/google.golang.org/protobuf/proto/decode.go +0 -278
  330. data/vendor/google.golang.org/protobuf/proto/decode_gen.go +0 -603
  331. data/vendor/google.golang.org/protobuf/proto/doc.go +0 -94
  332. data/vendor/google.golang.org/protobuf/proto/encode.go +0 -319
  333. data/vendor/google.golang.org/protobuf/proto/encode_gen.go +0 -97
  334. data/vendor/google.golang.org/protobuf/proto/equal.go +0 -167
  335. data/vendor/google.golang.org/protobuf/proto/extension.go +0 -92
  336. data/vendor/google.golang.org/protobuf/proto/merge.go +0 -139
  337. data/vendor/google.golang.org/protobuf/proto/messageset.go +0 -93
  338. data/vendor/google.golang.org/protobuf/proto/proto.go +0 -43
  339. data/vendor/google.golang.org/protobuf/proto/proto_methods.go +0 -19
  340. data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +0 -19
  341. data/vendor/google.golang.org/protobuf/proto/reset.go +0 -43
  342. data/vendor/google.golang.org/protobuf/proto/size.go +0 -97
  343. data/vendor/google.golang.org/protobuf/proto/size_gen.go +0 -55
  344. data/vendor/google.golang.org/protobuf/proto/wrappers.go +0 -29
  345. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +0 -276
  346. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +0 -248
  347. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +0 -286
  348. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +0 -374
  349. data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +0 -252
  350. data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +0 -77
  351. data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +0 -504
  352. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +0 -128
  353. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +0 -461
  354. data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +0 -665
  355. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +0 -285
  356. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +0 -59
  357. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +0 -411
  358. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +0 -98
  359. data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +0 -869
  360. data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +0 -15
  361. data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +0 -167
  362. data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +0 -44
  363. data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +0 -56
  364. data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +0 -4039
  365. data/vendor/modules.txt +0 -79
@@ -1,631 +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 filedesc
6
-
7
- import (
8
- "bytes"
9
- "fmt"
10
- "sync"
11
- "sync/atomic"
12
-
13
- "google.golang.org/protobuf/internal/descfmt"
14
- "google.golang.org/protobuf/internal/descopts"
15
- "google.golang.org/protobuf/internal/encoding/defval"
16
- "google.golang.org/protobuf/internal/encoding/messageset"
17
- "google.golang.org/protobuf/internal/genid"
18
- "google.golang.org/protobuf/internal/pragma"
19
- "google.golang.org/protobuf/internal/strs"
20
- pref "google.golang.org/protobuf/reflect/protoreflect"
21
- "google.golang.org/protobuf/reflect/protoregistry"
22
- )
23
-
24
- // The types in this file may have a suffix:
25
- // • L0: Contains fields common to all descriptors (except File) and
26
- // must be initialized up front.
27
- // • L1: Contains fields specific to a descriptor and
28
- // must be initialized up front.
29
- // • L2: Contains fields that are lazily initialized when constructing
30
- // from the raw file descriptor. When constructing as a literal, the L2
31
- // fields must be initialized up front.
32
- //
33
- // The types are exported so that packages like reflect/protodesc can
34
- // directly construct descriptors.
35
-
36
- type (
37
- File struct {
38
- fileRaw
39
- L1 FileL1
40
-
41
- once uint32 // atomically set if L2 is valid
42
- mu sync.Mutex // protects L2
43
- L2 *FileL2
44
- }
45
- FileL1 struct {
46
- Syntax pref.Syntax
47
- Path string
48
- Package pref.FullName
49
-
50
- Enums Enums
51
- Messages Messages
52
- Extensions Extensions
53
- Services Services
54
- }
55
- FileL2 struct {
56
- Options func() pref.ProtoMessage
57
- Imports FileImports
58
- Locations SourceLocations
59
- }
60
- )
61
-
62
- func (fd *File) ParentFile() pref.FileDescriptor { return fd }
63
- func (fd *File) Parent() pref.Descriptor { return nil }
64
- func (fd *File) Index() int { return 0 }
65
- func (fd *File) Syntax() pref.Syntax { return fd.L1.Syntax }
66
- func (fd *File) Name() pref.Name { return fd.L1.Package.Name() }
67
- func (fd *File) FullName() pref.FullName { return fd.L1.Package }
68
- func (fd *File) IsPlaceholder() bool { return false }
69
- func (fd *File) Options() pref.ProtoMessage {
70
- if f := fd.lazyInit().Options; f != nil {
71
- return f()
72
- }
73
- return descopts.File
74
- }
75
- func (fd *File) Path() string { return fd.L1.Path }
76
- func (fd *File) Package() pref.FullName { return fd.L1.Package }
77
- func (fd *File) Imports() pref.FileImports { return &fd.lazyInit().Imports }
78
- func (fd *File) Enums() pref.EnumDescriptors { return &fd.L1.Enums }
79
- func (fd *File) Messages() pref.MessageDescriptors { return &fd.L1.Messages }
80
- func (fd *File) Extensions() pref.ExtensionDescriptors { return &fd.L1.Extensions }
81
- func (fd *File) Services() pref.ServiceDescriptors { return &fd.L1.Services }
82
- func (fd *File) SourceLocations() pref.SourceLocations { return &fd.lazyInit().Locations }
83
- func (fd *File) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, fd) }
84
- func (fd *File) ProtoType(pref.FileDescriptor) {}
85
- func (fd *File) ProtoInternal(pragma.DoNotImplement) {}
86
-
87
- func (fd *File) lazyInit() *FileL2 {
88
- if atomic.LoadUint32(&fd.once) == 0 {
89
- fd.lazyInitOnce()
90
- }
91
- return fd.L2
92
- }
93
-
94
- func (fd *File) lazyInitOnce() {
95
- fd.mu.Lock()
96
- if fd.L2 == nil {
97
- fd.lazyRawInit() // recursively initializes all L2 structures
98
- }
99
- atomic.StoreUint32(&fd.once, 1)
100
- fd.mu.Unlock()
101
- }
102
-
103
- // GoPackagePath is a pseudo-internal API for determining the Go package path
104
- // that this file descriptor is declared in.
105
- //
106
- // WARNING: This method is exempt from the compatibility promise and may be
107
- // removed in the future without warning.
108
- func (fd *File) GoPackagePath() string {
109
- return fd.builder.GoPackagePath
110
- }
111
-
112
- type (
113
- Enum struct {
114
- Base
115
- L1 EnumL1
116
- L2 *EnumL2 // protected by fileDesc.once
117
- }
118
- EnumL1 struct {
119
- eagerValues bool // controls whether EnumL2.Values is already populated
120
- }
121
- EnumL2 struct {
122
- Options func() pref.ProtoMessage
123
- Values EnumValues
124
- ReservedNames Names
125
- ReservedRanges EnumRanges
126
- }
127
-
128
- EnumValue struct {
129
- Base
130
- L1 EnumValueL1
131
- }
132
- EnumValueL1 struct {
133
- Options func() pref.ProtoMessage
134
- Number pref.EnumNumber
135
- }
136
- )
137
-
138
- func (ed *Enum) Options() pref.ProtoMessage {
139
- if f := ed.lazyInit().Options; f != nil {
140
- return f()
141
- }
142
- return descopts.Enum
143
- }
144
- func (ed *Enum) Values() pref.EnumValueDescriptors {
145
- if ed.L1.eagerValues {
146
- return &ed.L2.Values
147
- }
148
- return &ed.lazyInit().Values
149
- }
150
- func (ed *Enum) ReservedNames() pref.Names { return &ed.lazyInit().ReservedNames }
151
- func (ed *Enum) ReservedRanges() pref.EnumRanges { return &ed.lazyInit().ReservedRanges }
152
- func (ed *Enum) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, ed) }
153
- func (ed *Enum) ProtoType(pref.EnumDescriptor) {}
154
- func (ed *Enum) lazyInit() *EnumL2 {
155
- ed.L0.ParentFile.lazyInit() // implicitly initializes L2
156
- return ed.L2
157
- }
158
-
159
- func (ed *EnumValue) Options() pref.ProtoMessage {
160
- if f := ed.L1.Options; f != nil {
161
- return f()
162
- }
163
- return descopts.EnumValue
164
- }
165
- func (ed *EnumValue) Number() pref.EnumNumber { return ed.L1.Number }
166
- func (ed *EnumValue) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, ed) }
167
- func (ed *EnumValue) ProtoType(pref.EnumValueDescriptor) {}
168
-
169
- type (
170
- Message struct {
171
- Base
172
- L1 MessageL1
173
- L2 *MessageL2 // protected by fileDesc.once
174
- }
175
- MessageL1 struct {
176
- Enums Enums
177
- Messages Messages
178
- Extensions Extensions
179
- IsMapEntry bool // promoted from google.protobuf.MessageOptions
180
- IsMessageSet bool // promoted from google.protobuf.MessageOptions
181
- }
182
- MessageL2 struct {
183
- Options func() pref.ProtoMessage
184
- Fields Fields
185
- Oneofs Oneofs
186
- ReservedNames Names
187
- ReservedRanges FieldRanges
188
- RequiredNumbers FieldNumbers // must be consistent with Fields.Cardinality
189
- ExtensionRanges FieldRanges
190
- ExtensionRangeOptions []func() pref.ProtoMessage // must be same length as ExtensionRanges
191
- }
192
-
193
- Field struct {
194
- Base
195
- L1 FieldL1
196
- }
197
- FieldL1 struct {
198
- Options func() pref.ProtoMessage
199
- Number pref.FieldNumber
200
- Cardinality pref.Cardinality // must be consistent with Message.RequiredNumbers
201
- Kind pref.Kind
202
- StringName stringName
203
- IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto
204
- IsWeak bool // promoted from google.protobuf.FieldOptions
205
- HasPacked bool // promoted from google.protobuf.FieldOptions
206
- IsPacked bool // promoted from google.protobuf.FieldOptions
207
- HasEnforceUTF8 bool // promoted from google.protobuf.FieldOptions
208
- EnforceUTF8 bool // promoted from google.protobuf.FieldOptions
209
- Default defaultValue
210
- ContainingOneof pref.OneofDescriptor // must be consistent with Message.Oneofs.Fields
211
- Enum pref.EnumDescriptor
212
- Message pref.MessageDescriptor
213
- }
214
-
215
- Oneof struct {
216
- Base
217
- L1 OneofL1
218
- }
219
- OneofL1 struct {
220
- Options func() pref.ProtoMessage
221
- Fields OneofFields // must be consistent with Message.Fields.ContainingOneof
222
- }
223
- )
224
-
225
- func (md *Message) Options() pref.ProtoMessage {
226
- if f := md.lazyInit().Options; f != nil {
227
- return f()
228
- }
229
- return descopts.Message
230
- }
231
- func (md *Message) IsMapEntry() bool { return md.L1.IsMapEntry }
232
- func (md *Message) Fields() pref.FieldDescriptors { return &md.lazyInit().Fields }
233
- func (md *Message) Oneofs() pref.OneofDescriptors { return &md.lazyInit().Oneofs }
234
- func (md *Message) ReservedNames() pref.Names { return &md.lazyInit().ReservedNames }
235
- func (md *Message) ReservedRanges() pref.FieldRanges { return &md.lazyInit().ReservedRanges }
236
- func (md *Message) RequiredNumbers() pref.FieldNumbers { return &md.lazyInit().RequiredNumbers }
237
- func (md *Message) ExtensionRanges() pref.FieldRanges { return &md.lazyInit().ExtensionRanges }
238
- func (md *Message) ExtensionRangeOptions(i int) pref.ProtoMessage {
239
- if f := md.lazyInit().ExtensionRangeOptions[i]; f != nil {
240
- return f()
241
- }
242
- return descopts.ExtensionRange
243
- }
244
- func (md *Message) Enums() pref.EnumDescriptors { return &md.L1.Enums }
245
- func (md *Message) Messages() pref.MessageDescriptors { return &md.L1.Messages }
246
- func (md *Message) Extensions() pref.ExtensionDescriptors { return &md.L1.Extensions }
247
- func (md *Message) ProtoType(pref.MessageDescriptor) {}
248
- func (md *Message) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, md) }
249
- func (md *Message) lazyInit() *MessageL2 {
250
- md.L0.ParentFile.lazyInit() // implicitly initializes L2
251
- return md.L2
252
- }
253
-
254
- // IsMessageSet is a pseudo-internal API for checking whether a message
255
- // should serialize in the proto1 message format.
256
- //
257
- // WARNING: This method is exempt from the compatibility promise and may be
258
- // removed in the future without warning.
259
- func (md *Message) IsMessageSet() bool {
260
- return md.L1.IsMessageSet
261
- }
262
-
263
- func (fd *Field) Options() pref.ProtoMessage {
264
- if f := fd.L1.Options; f != nil {
265
- return f()
266
- }
267
- return descopts.Field
268
- }
269
- func (fd *Field) Number() pref.FieldNumber { return fd.L1.Number }
270
- func (fd *Field) Cardinality() pref.Cardinality { return fd.L1.Cardinality }
271
- func (fd *Field) Kind() pref.Kind { return fd.L1.Kind }
272
- func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON }
273
- func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) }
274
- func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) }
275
- func (fd *Field) HasPresence() bool {
276
- return fd.L1.Cardinality != pref.Repeated && (fd.L0.ParentFile.L1.Syntax == pref.Proto2 || fd.L1.Message != nil || fd.L1.ContainingOneof != nil)
277
- }
278
- func (fd *Field) HasOptionalKeyword() bool {
279
- return (fd.L0.ParentFile.L1.Syntax == pref.Proto2 && fd.L1.Cardinality == pref.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional
280
- }
281
- func (fd *Field) IsPacked() bool {
282
- if !fd.L1.HasPacked && fd.L0.ParentFile.L1.Syntax != pref.Proto2 && fd.L1.Cardinality == pref.Repeated {
283
- switch fd.L1.Kind {
284
- case pref.StringKind, pref.BytesKind, pref.MessageKind, pref.GroupKind:
285
- default:
286
- return true
287
- }
288
- }
289
- return fd.L1.IsPacked
290
- }
291
- func (fd *Field) IsExtension() bool { return false }
292
- func (fd *Field) IsWeak() bool { return fd.L1.IsWeak }
293
- func (fd *Field) IsList() bool { return fd.Cardinality() == pref.Repeated && !fd.IsMap() }
294
- func (fd *Field) IsMap() bool { return fd.Message() != nil && fd.Message().IsMapEntry() }
295
- func (fd *Field) MapKey() pref.FieldDescriptor {
296
- if !fd.IsMap() {
297
- return nil
298
- }
299
- return fd.Message().Fields().ByNumber(genid.MapEntry_Key_field_number)
300
- }
301
- func (fd *Field) MapValue() pref.FieldDescriptor {
302
- if !fd.IsMap() {
303
- return nil
304
- }
305
- return fd.Message().Fields().ByNumber(genid.MapEntry_Value_field_number)
306
- }
307
- func (fd *Field) HasDefault() bool { return fd.L1.Default.has }
308
- func (fd *Field) Default() pref.Value { return fd.L1.Default.get(fd) }
309
- func (fd *Field) DefaultEnumValue() pref.EnumValueDescriptor { return fd.L1.Default.enum }
310
- func (fd *Field) ContainingOneof() pref.OneofDescriptor { return fd.L1.ContainingOneof }
311
- func (fd *Field) ContainingMessage() pref.MessageDescriptor {
312
- return fd.L0.Parent.(pref.MessageDescriptor)
313
- }
314
- func (fd *Field) Enum() pref.EnumDescriptor {
315
- return fd.L1.Enum
316
- }
317
- func (fd *Field) Message() pref.MessageDescriptor {
318
- if fd.L1.IsWeak {
319
- if d, _ := protoregistry.GlobalFiles.FindDescriptorByName(fd.L1.Message.FullName()); d != nil {
320
- return d.(pref.MessageDescriptor)
321
- }
322
- }
323
- return fd.L1.Message
324
- }
325
- func (fd *Field) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, fd) }
326
- func (fd *Field) ProtoType(pref.FieldDescriptor) {}
327
-
328
- // EnforceUTF8 is a pseudo-internal API to determine whether to enforce UTF-8
329
- // validation for the string field. This exists for Google-internal use only
330
- // since proto3 did not enforce UTF-8 validity prior to the open-source release.
331
- // If this method does not exist, the default is to enforce valid UTF-8.
332
- //
333
- // WARNING: This method is exempt from the compatibility promise and may be
334
- // removed in the future without warning.
335
- func (fd *Field) EnforceUTF8() bool {
336
- if fd.L1.HasEnforceUTF8 {
337
- return fd.L1.EnforceUTF8
338
- }
339
- return fd.L0.ParentFile.L1.Syntax == pref.Proto3
340
- }
341
-
342
- func (od *Oneof) IsSynthetic() bool {
343
- return od.L0.ParentFile.L1.Syntax == pref.Proto3 && len(od.L1.Fields.List) == 1 && od.L1.Fields.List[0].HasOptionalKeyword()
344
- }
345
- func (od *Oneof) Options() pref.ProtoMessage {
346
- if f := od.L1.Options; f != nil {
347
- return f()
348
- }
349
- return descopts.Oneof
350
- }
351
- func (od *Oneof) Fields() pref.FieldDescriptors { return &od.L1.Fields }
352
- func (od *Oneof) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, od) }
353
- func (od *Oneof) ProtoType(pref.OneofDescriptor) {}
354
-
355
- type (
356
- Extension struct {
357
- Base
358
- L1 ExtensionL1
359
- L2 *ExtensionL2 // protected by fileDesc.once
360
- }
361
- ExtensionL1 struct {
362
- Number pref.FieldNumber
363
- Extendee pref.MessageDescriptor
364
- Cardinality pref.Cardinality
365
- Kind pref.Kind
366
- }
367
- ExtensionL2 struct {
368
- Options func() pref.ProtoMessage
369
- StringName stringName
370
- IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto
371
- IsPacked bool // promoted from google.protobuf.FieldOptions
372
- Default defaultValue
373
- Enum pref.EnumDescriptor
374
- Message pref.MessageDescriptor
375
- }
376
- )
377
-
378
- func (xd *Extension) Options() pref.ProtoMessage {
379
- if f := xd.lazyInit().Options; f != nil {
380
- return f()
381
- }
382
- return descopts.Field
383
- }
384
- func (xd *Extension) Number() pref.FieldNumber { return xd.L1.Number }
385
- func (xd *Extension) Cardinality() pref.Cardinality { return xd.L1.Cardinality }
386
- func (xd *Extension) Kind() pref.Kind { return xd.L1.Kind }
387
- func (xd *Extension) HasJSONName() bool { return xd.lazyInit().StringName.hasJSON }
388
- func (xd *Extension) JSONName() string { return xd.lazyInit().StringName.getJSON(xd) }
389
- func (xd *Extension) TextName() string { return xd.lazyInit().StringName.getText(xd) }
390
- func (xd *Extension) HasPresence() bool { return xd.L1.Cardinality != pref.Repeated }
391
- func (xd *Extension) HasOptionalKeyword() bool {
392
- return (xd.L0.ParentFile.L1.Syntax == pref.Proto2 && xd.L1.Cardinality == pref.Optional) || xd.lazyInit().IsProto3Optional
393
- }
394
- func (xd *Extension) IsPacked() bool { return xd.lazyInit().IsPacked }
395
- func (xd *Extension) IsExtension() bool { return true }
396
- func (xd *Extension) IsWeak() bool { return false }
397
- func (xd *Extension) IsList() bool { return xd.Cardinality() == pref.Repeated }
398
- func (xd *Extension) IsMap() bool { return false }
399
- func (xd *Extension) MapKey() pref.FieldDescriptor { return nil }
400
- func (xd *Extension) MapValue() pref.FieldDescriptor { return nil }
401
- func (xd *Extension) HasDefault() bool { return xd.lazyInit().Default.has }
402
- func (xd *Extension) Default() pref.Value { return xd.lazyInit().Default.get(xd) }
403
- func (xd *Extension) DefaultEnumValue() pref.EnumValueDescriptor { return xd.lazyInit().Default.enum }
404
- func (xd *Extension) ContainingOneof() pref.OneofDescriptor { return nil }
405
- func (xd *Extension) ContainingMessage() pref.MessageDescriptor { return xd.L1.Extendee }
406
- func (xd *Extension) Enum() pref.EnumDescriptor { return xd.lazyInit().Enum }
407
- func (xd *Extension) Message() pref.MessageDescriptor { return xd.lazyInit().Message }
408
- func (xd *Extension) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, xd) }
409
- func (xd *Extension) ProtoType(pref.FieldDescriptor) {}
410
- func (xd *Extension) ProtoInternal(pragma.DoNotImplement) {}
411
- func (xd *Extension) lazyInit() *ExtensionL2 {
412
- xd.L0.ParentFile.lazyInit() // implicitly initializes L2
413
- return xd.L2
414
- }
415
-
416
- type (
417
- Service struct {
418
- Base
419
- L1 ServiceL1
420
- L2 *ServiceL2 // protected by fileDesc.once
421
- }
422
- ServiceL1 struct{}
423
- ServiceL2 struct {
424
- Options func() pref.ProtoMessage
425
- Methods Methods
426
- }
427
-
428
- Method struct {
429
- Base
430
- L1 MethodL1
431
- }
432
- MethodL1 struct {
433
- Options func() pref.ProtoMessage
434
- Input pref.MessageDescriptor
435
- Output pref.MessageDescriptor
436
- IsStreamingClient bool
437
- IsStreamingServer bool
438
- }
439
- )
440
-
441
- func (sd *Service) Options() pref.ProtoMessage {
442
- if f := sd.lazyInit().Options; f != nil {
443
- return f()
444
- }
445
- return descopts.Service
446
- }
447
- func (sd *Service) Methods() pref.MethodDescriptors { return &sd.lazyInit().Methods }
448
- func (sd *Service) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, sd) }
449
- func (sd *Service) ProtoType(pref.ServiceDescriptor) {}
450
- func (sd *Service) ProtoInternal(pragma.DoNotImplement) {}
451
- func (sd *Service) lazyInit() *ServiceL2 {
452
- sd.L0.ParentFile.lazyInit() // implicitly initializes L2
453
- return sd.L2
454
- }
455
-
456
- func (md *Method) Options() pref.ProtoMessage {
457
- if f := md.L1.Options; f != nil {
458
- return f()
459
- }
460
- return descopts.Method
461
- }
462
- func (md *Method) Input() pref.MessageDescriptor { return md.L1.Input }
463
- func (md *Method) Output() pref.MessageDescriptor { return md.L1.Output }
464
- func (md *Method) IsStreamingClient() bool { return md.L1.IsStreamingClient }
465
- func (md *Method) IsStreamingServer() bool { return md.L1.IsStreamingServer }
466
- func (md *Method) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, md) }
467
- func (md *Method) ProtoType(pref.MethodDescriptor) {}
468
- func (md *Method) ProtoInternal(pragma.DoNotImplement) {}
469
-
470
- // Surrogate files are can be used to create standalone descriptors
471
- // where the syntax is only information derived from the parent file.
472
- var (
473
- SurrogateProto2 = &File{L1: FileL1{Syntax: pref.Proto2}, L2: &FileL2{}}
474
- SurrogateProto3 = &File{L1: FileL1{Syntax: pref.Proto3}, L2: &FileL2{}}
475
- )
476
-
477
- type (
478
- Base struct {
479
- L0 BaseL0
480
- }
481
- BaseL0 struct {
482
- FullName pref.FullName // must be populated
483
- ParentFile *File // must be populated
484
- Parent pref.Descriptor
485
- Index int
486
- }
487
- )
488
-
489
- func (d *Base) Name() pref.Name { return d.L0.FullName.Name() }
490
- func (d *Base) FullName() pref.FullName { return d.L0.FullName }
491
- func (d *Base) ParentFile() pref.FileDescriptor {
492
- if d.L0.ParentFile == SurrogateProto2 || d.L0.ParentFile == SurrogateProto3 {
493
- return nil // surrogate files are not real parents
494
- }
495
- return d.L0.ParentFile
496
- }
497
- func (d *Base) Parent() pref.Descriptor { return d.L0.Parent }
498
- func (d *Base) Index() int { return d.L0.Index }
499
- func (d *Base) Syntax() pref.Syntax { return d.L0.ParentFile.Syntax() }
500
- func (d *Base) IsPlaceholder() bool { return false }
501
- func (d *Base) ProtoInternal(pragma.DoNotImplement) {}
502
-
503
- type stringName struct {
504
- hasJSON bool
505
- once sync.Once
506
- nameJSON string
507
- nameText string
508
- }
509
-
510
- // InitJSON initializes the name. It is exported for use by other internal packages.
511
- func (s *stringName) InitJSON(name string) {
512
- s.hasJSON = true
513
- s.nameJSON = name
514
- }
515
-
516
- func (s *stringName) lazyInit(fd pref.FieldDescriptor) *stringName {
517
- s.once.Do(func() {
518
- if fd.IsExtension() {
519
- // For extensions, JSON and text are formatted the same way.
520
- var name string
521
- if messageset.IsMessageSetExtension(fd) {
522
- name = string("[" + fd.FullName().Parent() + "]")
523
- } else {
524
- name = string("[" + fd.FullName() + "]")
525
- }
526
- s.nameJSON = name
527
- s.nameText = name
528
- } else {
529
- // Format the JSON name.
530
- if !s.hasJSON {
531
- s.nameJSON = strs.JSONCamelCase(string(fd.Name()))
532
- }
533
-
534
- // Format the text name.
535
- s.nameText = string(fd.Name())
536
- if fd.Kind() == pref.GroupKind {
537
- s.nameText = string(fd.Message().Name())
538
- }
539
- }
540
- })
541
- return s
542
- }
543
-
544
- func (s *stringName) getJSON(fd pref.FieldDescriptor) string { return s.lazyInit(fd).nameJSON }
545
- func (s *stringName) getText(fd pref.FieldDescriptor) string { return s.lazyInit(fd).nameText }
546
-
547
- func DefaultValue(v pref.Value, ev pref.EnumValueDescriptor) defaultValue {
548
- dv := defaultValue{has: v.IsValid(), val: v, enum: ev}
549
- if b, ok := v.Interface().([]byte); ok {
550
- // Store a copy of the default bytes, so that we can detect
551
- // accidental mutations of the original value.
552
- dv.bytes = append([]byte(nil), b...)
553
- }
554
- return dv
555
- }
556
-
557
- func unmarshalDefault(b []byte, k pref.Kind, pf *File, ed pref.EnumDescriptor) defaultValue {
558
- var evs pref.EnumValueDescriptors
559
- if k == pref.EnumKind {
560
- // If the enum is declared within the same file, be careful not to
561
- // blindly call the Values method, lest we bind ourselves in a deadlock.
562
- if e, ok := ed.(*Enum); ok && e.L0.ParentFile == pf {
563
- evs = &e.L2.Values
564
- } else {
565
- evs = ed.Values()
566
- }
567
-
568
- // If we are unable to resolve the enum dependency, use a placeholder
569
- // enum value since we will not be able to parse the default value.
570
- if ed.IsPlaceholder() && pref.Name(b).IsValid() {
571
- v := pref.ValueOfEnum(0)
572
- ev := PlaceholderEnumValue(ed.FullName().Parent().Append(pref.Name(b)))
573
- return DefaultValue(v, ev)
574
- }
575
- }
576
-
577
- v, ev, err := defval.Unmarshal(string(b), k, evs, defval.Descriptor)
578
- if err != nil {
579
- panic(err)
580
- }
581
- return DefaultValue(v, ev)
582
- }
583
-
584
- type defaultValue struct {
585
- has bool
586
- val pref.Value
587
- enum pref.EnumValueDescriptor
588
- bytes []byte
589
- }
590
-
591
- func (dv *defaultValue) get(fd pref.FieldDescriptor) pref.Value {
592
- // Return the zero value as the default if unpopulated.
593
- if !dv.has {
594
- if fd.Cardinality() == pref.Repeated {
595
- return pref.Value{}
596
- }
597
- switch fd.Kind() {
598
- case pref.BoolKind:
599
- return pref.ValueOfBool(false)
600
- case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind:
601
- return pref.ValueOfInt32(0)
602
- case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind:
603
- return pref.ValueOfInt64(0)
604
- case pref.Uint32Kind, pref.Fixed32Kind:
605
- return pref.ValueOfUint32(0)
606
- case pref.Uint64Kind, pref.Fixed64Kind:
607
- return pref.ValueOfUint64(0)
608
- case pref.FloatKind:
609
- return pref.ValueOfFloat32(0)
610
- case pref.DoubleKind:
611
- return pref.ValueOfFloat64(0)
612
- case pref.StringKind:
613
- return pref.ValueOfString("")
614
- case pref.BytesKind:
615
- return pref.ValueOfBytes(nil)
616
- case pref.EnumKind:
617
- if evs := fd.Enum().Values(); evs.Len() > 0 {
618
- return pref.ValueOfEnum(evs.Get(0).Number())
619
- }
620
- return pref.ValueOfEnum(0)
621
- }
622
- }
623
-
624
- if len(dv.bytes) > 0 && !bytes.Equal(dv.bytes, dv.val.Bytes()) {
625
- // TODO: Avoid panic if we're running with the race detector
626
- // and instead spawn a goroutine that periodically resets
627
- // this value back to the original to induce a race.
628
- panic(fmt.Sprintf("detected mutation on the default bytes for %v", fd.FullName()))
629
- }
630
- return dv.val
631
- }