planetscale 0.1.0

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 (378) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/ci.yml +24 -0
  3. data/.github/workflows/gem-push.yml +38 -0
  4. data/.github/workflows/licensed.yml +43 -0
  5. data/.gitignore +10 -0
  6. data/.licensed.yml +9 -0
  7. data/.licenses/go/github.com/armon/circbuf.dep.yml +31 -0
  8. data/.licenses/go/github.com/gorilla/mux.dep.yml +41 -0
  9. data/.licenses/go/github.com/hashicorp/go-cleanhttp.dep.yml +375 -0
  10. data/.licenses/go/github.com/mitchellh/go-homedir.dep.yml +32 -0
  11. data/.licenses/go/github.com/pkg/errors.dep.yml +36 -0
  12. data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +160 -0
  13. data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +180 -0
  14. data/.licenses/go/go.uber.org/atomic.dep.yml +31 -0
  15. data/.licenses/go/go.uber.org/multierr.dep.yml +30 -0
  16. data/.licenses/go/go.uber.org/zap.dep.yml +30 -0
  17. data/.licenses/go/go.uber.org/zap/buffer.dep.yml +30 -0
  18. data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +30 -0
  19. data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +30 -0
  20. data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +31 -0
  21. data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +31 -0
  22. data/.licenses/go/golang.org/x/net/context/ctxhttp.dep.yml +63 -0
  23. data/.licenses/go/golang.org/x/oauth2.dep.yml +44 -0
  24. data/.licenses/go/golang.org/x/oauth2/internal.dep.yml +38 -0
  25. data/.ruby_version +1 -0
  26. data/Gemfile +8 -0
  27. data/LICENSE +201 -0
  28. data/README.md +88 -0
  29. data/Rakefile +10 -0
  30. data/bin/console +15 -0
  31. data/bin/setup +17 -0
  32. data/controller.go +255 -0
  33. data/go.mod +16 -0
  34. data/go.sum +428 -0
  35. data/lib/generators/planetscale/install_generator.rb +58 -0
  36. data/lib/planetscale.rb +137 -0
  37. data/lib/planetscale/version.rb +5 -0
  38. data/planetscale.gemspec +44 -0
  39. data/proxy.go +128 -0
  40. data/vendor/github.com/armon/circbuf/.gitignore +22 -0
  41. data/vendor/github.com/armon/circbuf/LICENSE +20 -0
  42. data/vendor/github.com/armon/circbuf/README.md +28 -0
  43. data/vendor/github.com/armon/circbuf/circbuf.go +92 -0
  44. data/vendor/github.com/armon/circbuf/go.mod +1 -0
  45. data/vendor/github.com/golang/protobuf/AUTHORS +3 -0
  46. data/vendor/github.com/golang/protobuf/CONTRIBUTORS +3 -0
  47. data/vendor/github.com/golang/protobuf/LICENSE +28 -0
  48. data/vendor/github.com/golang/protobuf/proto/buffer.go +324 -0
  49. data/vendor/github.com/golang/protobuf/proto/defaults.go +63 -0
  50. data/vendor/github.com/golang/protobuf/proto/deprecated.go +113 -0
  51. data/vendor/github.com/golang/protobuf/proto/discard.go +58 -0
  52. data/vendor/github.com/golang/protobuf/proto/extensions.go +356 -0
  53. data/vendor/github.com/golang/protobuf/proto/properties.go +306 -0
  54. data/vendor/github.com/golang/protobuf/proto/proto.go +167 -0
  55. data/vendor/github.com/golang/protobuf/proto/registry.go +317 -0
  56. data/vendor/github.com/golang/protobuf/proto/text_decode.go +801 -0
  57. data/vendor/github.com/golang/protobuf/proto/text_encode.go +560 -0
  58. data/vendor/github.com/golang/protobuf/proto/wire.go +78 -0
  59. data/vendor/github.com/golang/protobuf/proto/wrappers.go +34 -0
  60. data/vendor/github.com/gorilla/mux/AUTHORS +8 -0
  61. data/vendor/github.com/gorilla/mux/LICENSE +27 -0
  62. data/vendor/github.com/gorilla/mux/README.md +805 -0
  63. data/vendor/github.com/gorilla/mux/doc.go +306 -0
  64. data/vendor/github.com/gorilla/mux/go.mod +3 -0
  65. data/vendor/github.com/gorilla/mux/middleware.go +74 -0
  66. data/vendor/github.com/gorilla/mux/mux.go +606 -0
  67. data/vendor/github.com/gorilla/mux/regexp.go +388 -0
  68. data/vendor/github.com/gorilla/mux/route.go +736 -0
  69. data/vendor/github.com/gorilla/mux/test_helpers.go +19 -0
  70. data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +363 -0
  71. data/vendor/github.com/hashicorp/go-cleanhttp/README.md +30 -0
  72. data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +58 -0
  73. data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +20 -0
  74. data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +3 -0
  75. data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +48 -0
  76. data/vendor/github.com/mitchellh/go-homedir/LICENSE +21 -0
  77. data/vendor/github.com/mitchellh/go-homedir/README.md +14 -0
  78. data/vendor/github.com/mitchellh/go-homedir/go.mod +1 -0
  79. data/vendor/github.com/mitchellh/go-homedir/homedir.go +167 -0
  80. data/vendor/github.com/pkg/errors/.gitignore +24 -0
  81. data/vendor/github.com/pkg/errors/.travis.yml +10 -0
  82. data/vendor/github.com/pkg/errors/LICENSE +23 -0
  83. data/vendor/github.com/pkg/errors/Makefile +44 -0
  84. data/vendor/github.com/pkg/errors/README.md +59 -0
  85. data/vendor/github.com/pkg/errors/appveyor.yml +32 -0
  86. data/vendor/github.com/pkg/errors/errors.go +288 -0
  87. data/vendor/github.com/pkg/errors/go113.go +38 -0
  88. data/vendor/github.com/pkg/errors/stack.go +177 -0
  89. data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +139 -0
  90. data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +258 -0
  91. data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +142 -0
  92. data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +305 -0
  93. data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +131 -0
  94. data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +368 -0
  95. data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +78 -0
  96. data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +163 -0
  97. data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +467 -0
  98. data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +73 -0
  99. data/vendor/go.uber.org/atomic/.codecov.yml +19 -0
  100. data/vendor/go.uber.org/atomic/.gitignore +12 -0
  101. data/vendor/go.uber.org/atomic/.travis.yml +27 -0
  102. data/vendor/go.uber.org/atomic/CHANGELOG.md +76 -0
  103. data/vendor/go.uber.org/atomic/LICENSE.txt +19 -0
  104. data/vendor/go.uber.org/atomic/Makefile +78 -0
  105. data/vendor/go.uber.org/atomic/README.md +63 -0
  106. data/vendor/go.uber.org/atomic/bool.go +81 -0
  107. data/vendor/go.uber.org/atomic/bool_ext.go +53 -0
  108. data/vendor/go.uber.org/atomic/doc.go +23 -0
  109. data/vendor/go.uber.org/atomic/duration.go +82 -0
  110. data/vendor/go.uber.org/atomic/duration_ext.go +40 -0
  111. data/vendor/go.uber.org/atomic/error.go +51 -0
  112. data/vendor/go.uber.org/atomic/error_ext.go +39 -0
  113. data/vendor/go.uber.org/atomic/float64.go +76 -0
  114. data/vendor/go.uber.org/atomic/float64_ext.go +47 -0
  115. data/vendor/go.uber.org/atomic/gen.go +26 -0
  116. data/vendor/go.uber.org/atomic/go.mod +8 -0
  117. data/vendor/go.uber.org/atomic/go.sum +9 -0
  118. data/vendor/go.uber.org/atomic/int32.go +102 -0
  119. data/vendor/go.uber.org/atomic/int64.go +102 -0
  120. data/vendor/go.uber.org/atomic/nocmp.go +35 -0
  121. data/vendor/go.uber.org/atomic/string.go +54 -0
  122. data/vendor/go.uber.org/atomic/string_ext.go +43 -0
  123. data/vendor/go.uber.org/atomic/uint32.go +102 -0
  124. data/vendor/go.uber.org/atomic/uint64.go +102 -0
  125. data/vendor/go.uber.org/atomic/value.go +31 -0
  126. data/vendor/go.uber.org/multierr/.codecov.yml +15 -0
  127. data/vendor/go.uber.org/multierr/.gitignore +4 -0
  128. data/vendor/go.uber.org/multierr/.travis.yml +23 -0
  129. data/vendor/go.uber.org/multierr/CHANGELOG.md +60 -0
  130. data/vendor/go.uber.org/multierr/LICENSE.txt +19 -0
  131. data/vendor/go.uber.org/multierr/Makefile +42 -0
  132. data/vendor/go.uber.org/multierr/README.md +23 -0
  133. data/vendor/go.uber.org/multierr/error.go +449 -0
  134. data/vendor/go.uber.org/multierr/glide.yaml +8 -0
  135. data/vendor/go.uber.org/multierr/go.mod +8 -0
  136. data/vendor/go.uber.org/multierr/go.sum +11 -0
  137. data/vendor/go.uber.org/multierr/go113.go +52 -0
  138. data/vendor/go.uber.org/zap/.codecov.yml +17 -0
  139. data/vendor/go.uber.org/zap/.gitignore +32 -0
  140. data/vendor/go.uber.org/zap/.readme.tmpl +109 -0
  141. data/vendor/go.uber.org/zap/.travis.yml +23 -0
  142. data/vendor/go.uber.org/zap/CHANGELOG.md +432 -0
  143. data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +75 -0
  144. data/vendor/go.uber.org/zap/CONTRIBUTING.md +81 -0
  145. data/vendor/go.uber.org/zap/FAQ.md +156 -0
  146. data/vendor/go.uber.org/zap/LICENSE.txt +19 -0
  147. data/vendor/go.uber.org/zap/Makefile +63 -0
  148. data/vendor/go.uber.org/zap/README.md +134 -0
  149. data/vendor/go.uber.org/zap/array.go +320 -0
  150. data/vendor/go.uber.org/zap/buffer/buffer.go +123 -0
  151. data/vendor/go.uber.org/zap/buffer/pool.go +49 -0
  152. data/vendor/go.uber.org/zap/checklicense.sh +17 -0
  153. data/vendor/go.uber.org/zap/config.go +264 -0
  154. data/vendor/go.uber.org/zap/doc.go +113 -0
  155. data/vendor/go.uber.org/zap/encoder.go +79 -0
  156. data/vendor/go.uber.org/zap/error.go +80 -0
  157. data/vendor/go.uber.org/zap/field.go +539 -0
  158. data/vendor/go.uber.org/zap/flag.go +39 -0
  159. data/vendor/go.uber.org/zap/glide.yaml +34 -0
  160. data/vendor/go.uber.org/zap/global.go +168 -0
  161. data/vendor/go.uber.org/zap/global_go112.go +26 -0
  162. data/vendor/go.uber.org/zap/global_prego112.go +26 -0
  163. data/vendor/go.uber.org/zap/go.mod +13 -0
  164. data/vendor/go.uber.org/zap/go.sum +56 -0
  165. data/vendor/go.uber.org/zap/http_handler.go +81 -0
  166. data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +31 -0
  167. data/vendor/go.uber.org/zap/internal/color/color.go +44 -0
  168. data/vendor/go.uber.org/zap/internal/exit/exit.go +64 -0
  169. data/vendor/go.uber.org/zap/level.go +132 -0
  170. data/vendor/go.uber.org/zap/logger.go +344 -0
  171. data/vendor/go.uber.org/zap/options.go +140 -0
  172. data/vendor/go.uber.org/zap/sink.go +161 -0
  173. data/vendor/go.uber.org/zap/stacktrace.go +85 -0
  174. data/vendor/go.uber.org/zap/sugar.go +304 -0
  175. data/vendor/go.uber.org/zap/time.go +27 -0
  176. data/vendor/go.uber.org/zap/writer.go +99 -0
  177. data/vendor/go.uber.org/zap/zapcore/console_encoder.go +161 -0
  178. data/vendor/go.uber.org/zap/zapcore/core.go +113 -0
  179. data/vendor/go.uber.org/zap/zapcore/doc.go +24 -0
  180. data/vendor/go.uber.org/zap/zapcore/encoder.go +443 -0
  181. data/vendor/go.uber.org/zap/zapcore/entry.go +264 -0
  182. data/vendor/go.uber.org/zap/zapcore/error.go +115 -0
  183. data/vendor/go.uber.org/zap/zapcore/field.go +227 -0
  184. data/vendor/go.uber.org/zap/zapcore/hook.go +68 -0
  185. data/vendor/go.uber.org/zap/zapcore/increase_level.go +66 -0
  186. data/vendor/go.uber.org/zap/zapcore/json_encoder.go +534 -0
  187. data/vendor/go.uber.org/zap/zapcore/level.go +175 -0
  188. data/vendor/go.uber.org/zap/zapcore/level_strings.go +46 -0
  189. data/vendor/go.uber.org/zap/zapcore/marshaler.go +61 -0
  190. data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +179 -0
  191. data/vendor/go.uber.org/zap/zapcore/sampler.go +208 -0
  192. data/vendor/go.uber.org/zap/zapcore/tee.go +81 -0
  193. data/vendor/go.uber.org/zap/zapcore/write_syncer.go +123 -0
  194. data/vendor/golang.org/x/net/AUTHORS +3 -0
  195. data/vendor/golang.org/x/net/CONTRIBUTORS +3 -0
  196. data/vendor/golang.org/x/net/LICENSE +27 -0
  197. data/vendor/golang.org/x/net/PATENTS +22 -0
  198. data/vendor/golang.org/x/net/context/context.go +56 -0
  199. data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +71 -0
  200. data/vendor/golang.org/x/net/context/go17.go +73 -0
  201. data/vendor/golang.org/x/net/context/go19.go +21 -0
  202. data/vendor/golang.org/x/net/context/pre_go17.go +301 -0
  203. data/vendor/golang.org/x/net/context/pre_go19.go +110 -0
  204. data/vendor/golang.org/x/oauth2/.travis.yml +13 -0
  205. data/vendor/golang.org/x/oauth2/AUTHORS +3 -0
  206. data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +26 -0
  207. data/vendor/golang.org/x/oauth2/CONTRIBUTORS +3 -0
  208. data/vendor/golang.org/x/oauth2/LICENSE +27 -0
  209. data/vendor/golang.org/x/oauth2/README.md +36 -0
  210. data/vendor/golang.org/x/oauth2/go.mod +9 -0
  211. data/vendor/golang.org/x/oauth2/go.sum +361 -0
  212. data/vendor/golang.org/x/oauth2/internal/client_appengine.go +14 -0
  213. data/vendor/golang.org/x/oauth2/internal/doc.go +6 -0
  214. data/vendor/golang.org/x/oauth2/internal/oauth2.go +37 -0
  215. data/vendor/golang.org/x/oauth2/internal/token.go +294 -0
  216. data/vendor/golang.org/x/oauth2/internal/transport.go +33 -0
  217. data/vendor/golang.org/x/oauth2/oauth2.go +381 -0
  218. data/vendor/golang.org/x/oauth2/token.go +178 -0
  219. data/vendor/golang.org/x/oauth2/transport.go +89 -0
  220. data/vendor/google.golang.org/appengine/LICENSE +202 -0
  221. data/vendor/google.golang.org/appengine/internal/api.go +678 -0
  222. data/vendor/google.golang.org/appengine/internal/api_classic.go +169 -0
  223. data/vendor/google.golang.org/appengine/internal/api_common.go +123 -0
  224. data/vendor/google.golang.org/appengine/internal/app_id.go +28 -0
  225. data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +308 -0
  226. data/vendor/google.golang.org/appengine/internal/base/api_base.proto +33 -0
  227. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +4367 -0
  228. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +551 -0
  229. data/vendor/google.golang.org/appengine/internal/identity.go +55 -0
  230. data/vendor/google.golang.org/appengine/internal/identity_classic.go +61 -0
  231. data/vendor/google.golang.org/appengine/internal/identity_flex.go +11 -0
  232. data/vendor/google.golang.org/appengine/internal/identity_vm.go +134 -0
  233. data/vendor/google.golang.org/appengine/internal/internal.go +110 -0
  234. data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +1313 -0
  235. data/vendor/google.golang.org/appengine/internal/log/log_service.proto +150 -0
  236. data/vendor/google.golang.org/appengine/internal/main.go +16 -0
  237. data/vendor/google.golang.org/appengine/internal/main_common.go +7 -0
  238. data/vendor/google.golang.org/appengine/internal/main_vm.go +69 -0
  239. data/vendor/google.golang.org/appengine/internal/metadata.go +60 -0
  240. data/vendor/google.golang.org/appengine/internal/net.go +56 -0
  241. data/vendor/google.golang.org/appengine/internal/regen.sh +40 -0
  242. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +361 -0
  243. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +44 -0
  244. data/vendor/google.golang.org/appengine/internal/transaction.go +115 -0
  245. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +527 -0
  246. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +64 -0
  247. data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +210 -0
  248. data/vendor/google.golang.org/protobuf/AUTHORS +3 -0
  249. data/vendor/google.golang.org/protobuf/CONTRIBUTORS +3 -0
  250. data/vendor/google.golang.org/protobuf/LICENSE +27 -0
  251. data/vendor/google.golang.org/protobuf/PATENTS +22 -0
  252. data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +773 -0
  253. data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +7 -0
  254. data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +371 -0
  255. data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +538 -0
  256. data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +318 -0
  257. data/vendor/google.golang.org/protobuf/internal/descopts/options.go +29 -0
  258. data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +69 -0
  259. data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +213 -0
  260. data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +241 -0
  261. data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +207 -0
  262. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +665 -0
  263. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +190 -0
  264. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +161 -0
  265. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +373 -0
  266. data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +29 -0
  267. data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +265 -0
  268. data/vendor/google.golang.org/protobuf/internal/errors/errors.go +89 -0
  269. data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +39 -0
  270. data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +12 -0
  271. data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +158 -0
  272. data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +631 -0
  273. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +471 -0
  274. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +704 -0
  275. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +450 -0
  276. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +356 -0
  277. data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +107 -0
  278. data/vendor/google.golang.org/protobuf/internal/filetype/build.go +297 -0
  279. data/vendor/google.golang.org/protobuf/internal/flags/flags.go +24 -0
  280. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +9 -0
  281. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +9 -0
  282. data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +34 -0
  283. data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +106 -0
  284. data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +829 -0
  285. data/vendor/google.golang.org/protobuf/internal/genid/doc.go +11 -0
  286. data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +34 -0
  287. data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +19 -0
  288. data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +31 -0
  289. data/vendor/google.golang.org/protobuf/internal/genid/goname.go +25 -0
  290. data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +16 -0
  291. data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +31 -0
  292. data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +116 -0
  293. data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +34 -0
  294. data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +184 -0
  295. data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +13 -0
  296. data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +175 -0
  297. data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +177 -0
  298. data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +141 -0
  299. data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +223 -0
  300. data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +830 -0
  301. data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +5637 -0
  302. data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +388 -0
  303. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +37 -0
  304. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +11 -0
  305. data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +217 -0
  306. data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +123 -0
  307. data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +209 -0
  308. data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +557 -0
  309. data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +17 -0
  310. data/vendor/google.golang.org/protobuf/internal/impl/convert.go +496 -0
  311. data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +141 -0
  312. data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +121 -0
  313. data/vendor/google.golang.org/protobuf/internal/impl/decode.go +276 -0
  314. data/vendor/google.golang.org/protobuf/internal/impl/encode.go +201 -0
  315. data/vendor/google.golang.org/protobuf/internal/impl/enum.go +21 -0
  316. data/vendor/google.golang.org/protobuf/internal/impl/extension.go +156 -0
  317. data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +219 -0
  318. data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +92 -0
  319. data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +176 -0
  320. data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +81 -0
  321. data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +558 -0
  322. data/vendor/google.golang.org/protobuf/internal/impl/merge.go +176 -0
  323. data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +209 -0
  324. data/vendor/google.golang.org/protobuf/internal/impl/message.go +276 -0
  325. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +465 -0
  326. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +543 -0
  327. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +249 -0
  328. data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +178 -0
  329. data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +174 -0
  330. data/vendor/google.golang.org/protobuf/internal/impl/validate.go +576 -0
  331. data/vendor/google.golang.org/protobuf/internal/impl/weak.go +74 -0
  332. data/vendor/google.golang.org/protobuf/internal/order/order.go +89 -0
  333. data/vendor/google.golang.org/protobuf/internal/order/range.go +115 -0
  334. data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +29 -0
  335. data/vendor/google.golang.org/protobuf/internal/set/ints.go +58 -0
  336. data/vendor/google.golang.org/protobuf/internal/strs/strings.go +196 -0
  337. data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +27 -0
  338. data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +94 -0
  339. data/vendor/google.golang.org/protobuf/internal/version/version.go +79 -0
  340. data/vendor/google.golang.org/protobuf/proto/checkinit.go +71 -0
  341. data/vendor/google.golang.org/protobuf/proto/decode.go +278 -0
  342. data/vendor/google.golang.org/protobuf/proto/decode_gen.go +603 -0
  343. data/vendor/google.golang.org/protobuf/proto/doc.go +94 -0
  344. data/vendor/google.golang.org/protobuf/proto/encode.go +319 -0
  345. data/vendor/google.golang.org/protobuf/proto/encode_gen.go +97 -0
  346. data/vendor/google.golang.org/protobuf/proto/equal.go +167 -0
  347. data/vendor/google.golang.org/protobuf/proto/extension.go +92 -0
  348. data/vendor/google.golang.org/protobuf/proto/merge.go +139 -0
  349. data/vendor/google.golang.org/protobuf/proto/messageset.go +93 -0
  350. data/vendor/google.golang.org/protobuf/proto/proto.go +43 -0
  351. data/vendor/google.golang.org/protobuf/proto/proto_methods.go +19 -0
  352. data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +19 -0
  353. data/vendor/google.golang.org/protobuf/proto/reset.go +43 -0
  354. data/vendor/google.golang.org/protobuf/proto/size.go +97 -0
  355. data/vendor/google.golang.org/protobuf/proto/size_gen.go +55 -0
  356. data/vendor/google.golang.org/protobuf/proto/wrappers.go +29 -0
  357. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +276 -0
  358. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +248 -0
  359. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +286 -0
  360. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +374 -0
  361. data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +252 -0
  362. data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +77 -0
  363. data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +504 -0
  364. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +128 -0
  365. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +461 -0
  366. data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +665 -0
  367. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +285 -0
  368. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +59 -0
  369. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +411 -0
  370. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +98 -0
  371. data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +869 -0
  372. data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +15 -0
  373. data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +167 -0
  374. data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +44 -0
  375. data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +56 -0
  376. data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +4039 -0
  377. data/vendor/modules.txt +79 -0
  378. metadata +495 -0
@@ -0,0 +1,450 @@
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
+ "fmt"
9
+ "math"
10
+ "sort"
11
+ "sync"
12
+
13
+ "google.golang.org/protobuf/internal/genid"
14
+
15
+ "google.golang.org/protobuf/encoding/protowire"
16
+ "google.golang.org/protobuf/internal/descfmt"
17
+ "google.golang.org/protobuf/internal/errors"
18
+ "google.golang.org/protobuf/internal/pragma"
19
+ "google.golang.org/protobuf/reflect/protoreflect"
20
+ pref "google.golang.org/protobuf/reflect/protoreflect"
21
+ )
22
+
23
+ type FileImports []pref.FileImport
24
+
25
+ func (p *FileImports) Len() int { return len(*p) }
26
+ func (p *FileImports) Get(i int) pref.FileImport { return (*p)[i] }
27
+ func (p *FileImports) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) }
28
+ func (p *FileImports) ProtoInternal(pragma.DoNotImplement) {}
29
+
30
+ type Names struct {
31
+ List []pref.Name
32
+ once sync.Once
33
+ has map[pref.Name]int // protected by once
34
+ }
35
+
36
+ func (p *Names) Len() int { return len(p.List) }
37
+ func (p *Names) Get(i int) pref.Name { return p.List[i] }
38
+ func (p *Names) Has(s pref.Name) bool { return p.lazyInit().has[s] > 0 }
39
+ func (p *Names) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) }
40
+ func (p *Names) ProtoInternal(pragma.DoNotImplement) {}
41
+ func (p *Names) lazyInit() *Names {
42
+ p.once.Do(func() {
43
+ if len(p.List) > 0 {
44
+ p.has = make(map[pref.Name]int, len(p.List))
45
+ for _, s := range p.List {
46
+ p.has[s] = p.has[s] + 1
47
+ }
48
+ }
49
+ })
50
+ return p
51
+ }
52
+
53
+ // CheckValid reports any errors with the set of names with an error message
54
+ // that completes the sentence: "ranges is invalid because it has ..."
55
+ func (p *Names) CheckValid() error {
56
+ for s, n := range p.lazyInit().has {
57
+ switch {
58
+ case n > 1:
59
+ return errors.New("duplicate name: %q", s)
60
+ case false && !s.IsValid():
61
+ // NOTE: The C++ implementation does not validate the identifier.
62
+ // See https://github.com/protocolbuffers/protobuf/issues/6335.
63
+ return errors.New("invalid name: %q", s)
64
+ }
65
+ }
66
+ return nil
67
+ }
68
+
69
+ type EnumRanges struct {
70
+ List [][2]pref.EnumNumber // start inclusive; end inclusive
71
+ once sync.Once
72
+ sorted [][2]pref.EnumNumber // protected by once
73
+ }
74
+
75
+ func (p *EnumRanges) Len() int { return len(p.List) }
76
+ func (p *EnumRanges) Get(i int) [2]pref.EnumNumber { return p.List[i] }
77
+ func (p *EnumRanges) Has(n pref.EnumNumber) bool {
78
+ for ls := p.lazyInit().sorted; len(ls) > 0; {
79
+ i := len(ls) / 2
80
+ switch r := enumRange(ls[i]); {
81
+ case n < r.Start():
82
+ ls = ls[:i] // search lower
83
+ case n > r.End():
84
+ ls = ls[i+1:] // search upper
85
+ default:
86
+ return true
87
+ }
88
+ }
89
+ return false
90
+ }
91
+ func (p *EnumRanges) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) }
92
+ func (p *EnumRanges) ProtoInternal(pragma.DoNotImplement) {}
93
+ func (p *EnumRanges) lazyInit() *EnumRanges {
94
+ p.once.Do(func() {
95
+ p.sorted = append(p.sorted, p.List...)
96
+ sort.Slice(p.sorted, func(i, j int) bool {
97
+ return p.sorted[i][0] < p.sorted[j][0]
98
+ })
99
+ })
100
+ return p
101
+ }
102
+
103
+ // CheckValid reports any errors with the set of names with an error message
104
+ // that completes the sentence: "ranges is invalid because it has ..."
105
+ func (p *EnumRanges) CheckValid() error {
106
+ var rp enumRange
107
+ for i, r := range p.lazyInit().sorted {
108
+ r := enumRange(r)
109
+ switch {
110
+ case !(r.Start() <= r.End()):
111
+ return errors.New("invalid range: %v", r)
112
+ case !(rp.End() < r.Start()) && i > 0:
113
+ return errors.New("overlapping ranges: %v with %v", rp, r)
114
+ }
115
+ rp = r
116
+ }
117
+ return nil
118
+ }
119
+
120
+ type enumRange [2]protoreflect.EnumNumber
121
+
122
+ func (r enumRange) Start() protoreflect.EnumNumber { return r[0] } // inclusive
123
+ func (r enumRange) End() protoreflect.EnumNumber { return r[1] } // inclusive
124
+ func (r enumRange) String() string {
125
+ if r.Start() == r.End() {
126
+ return fmt.Sprintf("%d", r.Start())
127
+ }
128
+ return fmt.Sprintf("%d to %d", r.Start(), r.End())
129
+ }
130
+
131
+ type FieldRanges struct {
132
+ List [][2]pref.FieldNumber // start inclusive; end exclusive
133
+ once sync.Once
134
+ sorted [][2]pref.FieldNumber // protected by once
135
+ }
136
+
137
+ func (p *FieldRanges) Len() int { return len(p.List) }
138
+ func (p *FieldRanges) Get(i int) [2]pref.FieldNumber { return p.List[i] }
139
+ func (p *FieldRanges) Has(n pref.FieldNumber) bool {
140
+ for ls := p.lazyInit().sorted; len(ls) > 0; {
141
+ i := len(ls) / 2
142
+ switch r := fieldRange(ls[i]); {
143
+ case n < r.Start():
144
+ ls = ls[:i] // search lower
145
+ case n > r.End():
146
+ ls = ls[i+1:] // search upper
147
+ default:
148
+ return true
149
+ }
150
+ }
151
+ return false
152
+ }
153
+ func (p *FieldRanges) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) }
154
+ func (p *FieldRanges) ProtoInternal(pragma.DoNotImplement) {}
155
+ func (p *FieldRanges) lazyInit() *FieldRanges {
156
+ p.once.Do(func() {
157
+ p.sorted = append(p.sorted, p.List...)
158
+ sort.Slice(p.sorted, func(i, j int) bool {
159
+ return p.sorted[i][0] < p.sorted[j][0]
160
+ })
161
+ })
162
+ return p
163
+ }
164
+
165
+ // CheckValid reports any errors with the set of ranges with an error message
166
+ // that completes the sentence: "ranges is invalid because it has ..."
167
+ func (p *FieldRanges) CheckValid(isMessageSet bool) error {
168
+ var rp fieldRange
169
+ for i, r := range p.lazyInit().sorted {
170
+ r := fieldRange(r)
171
+ switch {
172
+ case !isValidFieldNumber(r.Start(), isMessageSet):
173
+ return errors.New("invalid field number: %d", r.Start())
174
+ case !isValidFieldNumber(r.End(), isMessageSet):
175
+ return errors.New("invalid field number: %d", r.End())
176
+ case !(r.Start() <= r.End()):
177
+ return errors.New("invalid range: %v", r)
178
+ case !(rp.End() < r.Start()) && i > 0:
179
+ return errors.New("overlapping ranges: %v with %v", rp, r)
180
+ }
181
+ rp = r
182
+ }
183
+ return nil
184
+ }
185
+
186
+ // isValidFieldNumber reports whether the field number is valid.
187
+ // Unlike the FieldNumber.IsValid method, it allows ranges that cover the
188
+ // reserved number range.
189
+ func isValidFieldNumber(n protoreflect.FieldNumber, isMessageSet bool) bool {
190
+ return protowire.MinValidNumber <= n && (n <= protowire.MaxValidNumber || isMessageSet)
191
+ }
192
+
193
+ // CheckOverlap reports an error if p and q overlap.
194
+ func (p *FieldRanges) CheckOverlap(q *FieldRanges) error {
195
+ rps := p.lazyInit().sorted
196
+ rqs := q.lazyInit().sorted
197
+ for pi, qi := 0, 0; pi < len(rps) && qi < len(rqs); {
198
+ rp := fieldRange(rps[pi])
199
+ rq := fieldRange(rqs[qi])
200
+ if !(rp.End() < rq.Start() || rq.End() < rp.Start()) {
201
+ return errors.New("overlapping ranges: %v with %v", rp, rq)
202
+ }
203
+ if rp.Start() < rq.Start() {
204
+ pi++
205
+ } else {
206
+ qi++
207
+ }
208
+ }
209
+ return nil
210
+ }
211
+
212
+ type fieldRange [2]protoreflect.FieldNumber
213
+
214
+ func (r fieldRange) Start() protoreflect.FieldNumber { return r[0] } // inclusive
215
+ func (r fieldRange) End() protoreflect.FieldNumber { return r[1] - 1 } // inclusive
216
+ func (r fieldRange) String() string {
217
+ if r.Start() == r.End() {
218
+ return fmt.Sprintf("%d", r.Start())
219
+ }
220
+ return fmt.Sprintf("%d to %d", r.Start(), r.End())
221
+ }
222
+
223
+ type FieldNumbers struct {
224
+ List []pref.FieldNumber
225
+ once sync.Once
226
+ has map[pref.FieldNumber]struct{} // protected by once
227
+ }
228
+
229
+ func (p *FieldNumbers) Len() int { return len(p.List) }
230
+ func (p *FieldNumbers) Get(i int) pref.FieldNumber { return p.List[i] }
231
+ func (p *FieldNumbers) Has(n pref.FieldNumber) bool {
232
+ p.once.Do(func() {
233
+ if len(p.List) > 0 {
234
+ p.has = make(map[pref.FieldNumber]struct{}, len(p.List))
235
+ for _, n := range p.List {
236
+ p.has[n] = struct{}{}
237
+ }
238
+ }
239
+ })
240
+ _, ok := p.has[n]
241
+ return ok
242
+ }
243
+ func (p *FieldNumbers) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) }
244
+ func (p *FieldNumbers) ProtoInternal(pragma.DoNotImplement) {}
245
+
246
+ type OneofFields struct {
247
+ List []pref.FieldDescriptor
248
+ once sync.Once
249
+ byName map[pref.Name]pref.FieldDescriptor // protected by once
250
+ byJSON map[string]pref.FieldDescriptor // protected by once
251
+ byText map[string]pref.FieldDescriptor // protected by once
252
+ byNum map[pref.FieldNumber]pref.FieldDescriptor // protected by once
253
+ }
254
+
255
+ func (p *OneofFields) Len() int { return len(p.List) }
256
+ func (p *OneofFields) Get(i int) pref.FieldDescriptor { return p.List[i] }
257
+ func (p *OneofFields) ByName(s pref.Name) pref.FieldDescriptor { return p.lazyInit().byName[s] }
258
+ func (p *OneofFields) ByJSONName(s string) pref.FieldDescriptor { return p.lazyInit().byJSON[s] }
259
+ func (p *OneofFields) ByTextName(s string) pref.FieldDescriptor { return p.lazyInit().byText[s] }
260
+ func (p *OneofFields) ByNumber(n pref.FieldNumber) pref.FieldDescriptor { return p.lazyInit().byNum[n] }
261
+ func (p *OneofFields) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) }
262
+ func (p *OneofFields) ProtoInternal(pragma.DoNotImplement) {}
263
+
264
+ func (p *OneofFields) lazyInit() *OneofFields {
265
+ p.once.Do(func() {
266
+ if len(p.List) > 0 {
267
+ p.byName = make(map[pref.Name]pref.FieldDescriptor, len(p.List))
268
+ p.byJSON = make(map[string]pref.FieldDescriptor, len(p.List))
269
+ p.byText = make(map[string]pref.FieldDescriptor, len(p.List))
270
+ p.byNum = make(map[pref.FieldNumber]pref.FieldDescriptor, len(p.List))
271
+ for _, f := range p.List {
272
+ // Field names and numbers are guaranteed to be unique.
273
+ p.byName[f.Name()] = f
274
+ p.byJSON[f.JSONName()] = f
275
+ p.byText[f.TextName()] = f
276
+ p.byNum[f.Number()] = f
277
+ }
278
+ }
279
+ })
280
+ return p
281
+ }
282
+
283
+ type SourceLocations struct {
284
+ // List is a list of SourceLocations.
285
+ // The SourceLocation.Next field does not need to be populated
286
+ // as it will be lazily populated upon first need.
287
+ List []pref.SourceLocation
288
+
289
+ // File is the parent file descriptor that these locations are relative to.
290
+ // If non-nil, ByDescriptor verifies that the provided descriptor
291
+ // is a child of this file descriptor.
292
+ File pref.FileDescriptor
293
+
294
+ once sync.Once
295
+ byPath map[pathKey]int
296
+ }
297
+
298
+ func (p *SourceLocations) Len() int { return len(p.List) }
299
+ func (p *SourceLocations) Get(i int) pref.SourceLocation { return p.lazyInit().List[i] }
300
+ func (p *SourceLocations) byKey(k pathKey) pref.SourceLocation {
301
+ if i, ok := p.lazyInit().byPath[k]; ok {
302
+ return p.List[i]
303
+ }
304
+ return pref.SourceLocation{}
305
+ }
306
+ func (p *SourceLocations) ByPath(path pref.SourcePath) pref.SourceLocation {
307
+ return p.byKey(newPathKey(path))
308
+ }
309
+ func (p *SourceLocations) ByDescriptor(desc pref.Descriptor) pref.SourceLocation {
310
+ if p.File != nil && desc != nil && p.File != desc.ParentFile() {
311
+ return pref.SourceLocation{} // mismatching parent files
312
+ }
313
+ var pathArr [16]int32
314
+ path := pathArr[:0]
315
+ for {
316
+ switch desc.(type) {
317
+ case pref.FileDescriptor:
318
+ // Reverse the path since it was constructed in reverse.
319
+ for i, j := 0, len(path)-1; i < j; i, j = i+1, j-1 {
320
+ path[i], path[j] = path[j], path[i]
321
+ }
322
+ return p.byKey(newPathKey(path))
323
+ case pref.MessageDescriptor:
324
+ path = append(path, int32(desc.Index()))
325
+ desc = desc.Parent()
326
+ switch desc.(type) {
327
+ case pref.FileDescriptor:
328
+ path = append(path, int32(genid.FileDescriptorProto_MessageType_field_number))
329
+ case pref.MessageDescriptor:
330
+ path = append(path, int32(genid.DescriptorProto_NestedType_field_number))
331
+ default:
332
+ return pref.SourceLocation{}
333
+ }
334
+ case pref.FieldDescriptor:
335
+ isExtension := desc.(pref.FieldDescriptor).IsExtension()
336
+ path = append(path, int32(desc.Index()))
337
+ desc = desc.Parent()
338
+ if isExtension {
339
+ switch desc.(type) {
340
+ case pref.FileDescriptor:
341
+ path = append(path, int32(genid.FileDescriptorProto_Extension_field_number))
342
+ case pref.MessageDescriptor:
343
+ path = append(path, int32(genid.DescriptorProto_Extension_field_number))
344
+ default:
345
+ return pref.SourceLocation{}
346
+ }
347
+ } else {
348
+ switch desc.(type) {
349
+ case pref.MessageDescriptor:
350
+ path = append(path, int32(genid.DescriptorProto_Field_field_number))
351
+ default:
352
+ return pref.SourceLocation{}
353
+ }
354
+ }
355
+ case pref.OneofDescriptor:
356
+ path = append(path, int32(desc.Index()))
357
+ desc = desc.Parent()
358
+ switch desc.(type) {
359
+ case pref.MessageDescriptor:
360
+ path = append(path, int32(genid.DescriptorProto_OneofDecl_field_number))
361
+ default:
362
+ return pref.SourceLocation{}
363
+ }
364
+ case pref.EnumDescriptor:
365
+ path = append(path, int32(desc.Index()))
366
+ desc = desc.Parent()
367
+ switch desc.(type) {
368
+ case pref.FileDescriptor:
369
+ path = append(path, int32(genid.FileDescriptorProto_EnumType_field_number))
370
+ case pref.MessageDescriptor:
371
+ path = append(path, int32(genid.DescriptorProto_EnumType_field_number))
372
+ default:
373
+ return pref.SourceLocation{}
374
+ }
375
+ case pref.EnumValueDescriptor:
376
+ path = append(path, int32(desc.Index()))
377
+ desc = desc.Parent()
378
+ switch desc.(type) {
379
+ case pref.EnumDescriptor:
380
+ path = append(path, int32(genid.EnumDescriptorProto_Value_field_number))
381
+ default:
382
+ return pref.SourceLocation{}
383
+ }
384
+ case pref.ServiceDescriptor:
385
+ path = append(path, int32(desc.Index()))
386
+ desc = desc.Parent()
387
+ switch desc.(type) {
388
+ case pref.FileDescriptor:
389
+ path = append(path, int32(genid.FileDescriptorProto_Service_field_number))
390
+ default:
391
+ return pref.SourceLocation{}
392
+ }
393
+ case pref.MethodDescriptor:
394
+ path = append(path, int32(desc.Index()))
395
+ desc = desc.Parent()
396
+ switch desc.(type) {
397
+ case pref.ServiceDescriptor:
398
+ path = append(path, int32(genid.ServiceDescriptorProto_Method_field_number))
399
+ default:
400
+ return pref.SourceLocation{}
401
+ }
402
+ default:
403
+ return pref.SourceLocation{}
404
+ }
405
+ }
406
+ }
407
+ func (p *SourceLocations) lazyInit() *SourceLocations {
408
+ p.once.Do(func() {
409
+ if len(p.List) > 0 {
410
+ // Collect all the indexes for a given path.
411
+ pathIdxs := make(map[pathKey][]int, len(p.List))
412
+ for i, l := range p.List {
413
+ k := newPathKey(l.Path)
414
+ pathIdxs[k] = append(pathIdxs[k], i)
415
+ }
416
+
417
+ // Update the next index for all locations.
418
+ p.byPath = make(map[pathKey]int, len(p.List))
419
+ for k, idxs := range pathIdxs {
420
+ for i := 0; i < len(idxs)-1; i++ {
421
+ p.List[idxs[i]].Next = idxs[i+1]
422
+ }
423
+ p.List[idxs[len(idxs)-1]].Next = 0
424
+ p.byPath[k] = idxs[0] // record the first location for this path
425
+ }
426
+ }
427
+ })
428
+ return p
429
+ }
430
+ func (p *SourceLocations) ProtoInternal(pragma.DoNotImplement) {}
431
+
432
+ // pathKey is a comparable representation of protoreflect.SourcePath.
433
+ type pathKey struct {
434
+ arr [16]uint8 // first n-1 path segments; last element is the length
435
+ str string // used if the path does not fit in arr
436
+ }
437
+
438
+ func newPathKey(p pref.SourcePath) (k pathKey) {
439
+ if len(p) < len(k.arr) {
440
+ for i, ps := range p {
441
+ if ps < 0 || math.MaxUint8 <= ps {
442
+ return pathKey{str: p.String()}
443
+ }
444
+ k.arr[i] = uint8(ps)
445
+ }
446
+ k.arr[len(k.arr)-1] = uint8(len(p))
447
+ return k
448
+ }
449
+ return pathKey{str: p.String()}
450
+ }
@@ -0,0 +1,356 @@
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
+ // Code generated by generate-types. DO NOT EDIT.
6
+
7
+ package filedesc
8
+
9
+ import (
10
+ "fmt"
11
+ "sync"
12
+
13
+ "google.golang.org/protobuf/internal/descfmt"
14
+ "google.golang.org/protobuf/internal/pragma"
15
+ "google.golang.org/protobuf/reflect/protoreflect"
16
+ )
17
+
18
+ type Enums struct {
19
+ List []Enum
20
+ once sync.Once
21
+ byName map[protoreflect.Name]*Enum // protected by once
22
+ }
23
+
24
+ func (p *Enums) Len() int {
25
+ return len(p.List)
26
+ }
27
+ func (p *Enums) Get(i int) protoreflect.EnumDescriptor {
28
+ return &p.List[i]
29
+ }
30
+ func (p *Enums) ByName(s protoreflect.Name) protoreflect.EnumDescriptor {
31
+ if d := p.lazyInit().byName[s]; d != nil {
32
+ return d
33
+ }
34
+ return nil
35
+ }
36
+ func (p *Enums) Format(s fmt.State, r rune) {
37
+ descfmt.FormatList(s, r, p)
38
+ }
39
+ func (p *Enums) ProtoInternal(pragma.DoNotImplement) {}
40
+ func (p *Enums) lazyInit() *Enums {
41
+ p.once.Do(func() {
42
+ if len(p.List) > 0 {
43
+ p.byName = make(map[protoreflect.Name]*Enum, len(p.List))
44
+ for i := range p.List {
45
+ d := &p.List[i]
46
+ if _, ok := p.byName[d.Name()]; !ok {
47
+ p.byName[d.Name()] = d
48
+ }
49
+ }
50
+ }
51
+ })
52
+ return p
53
+ }
54
+
55
+ type EnumValues struct {
56
+ List []EnumValue
57
+ once sync.Once
58
+ byName map[protoreflect.Name]*EnumValue // protected by once
59
+ byNum map[protoreflect.EnumNumber]*EnumValue // protected by once
60
+ }
61
+
62
+ func (p *EnumValues) Len() int {
63
+ return len(p.List)
64
+ }
65
+ func (p *EnumValues) Get(i int) protoreflect.EnumValueDescriptor {
66
+ return &p.List[i]
67
+ }
68
+ func (p *EnumValues) ByName(s protoreflect.Name) protoreflect.EnumValueDescriptor {
69
+ if d := p.lazyInit().byName[s]; d != nil {
70
+ return d
71
+ }
72
+ return nil
73
+ }
74
+ func (p *EnumValues) ByNumber(n protoreflect.EnumNumber) protoreflect.EnumValueDescriptor {
75
+ if d := p.lazyInit().byNum[n]; d != nil {
76
+ return d
77
+ }
78
+ return nil
79
+ }
80
+ func (p *EnumValues) Format(s fmt.State, r rune) {
81
+ descfmt.FormatList(s, r, p)
82
+ }
83
+ func (p *EnumValues) ProtoInternal(pragma.DoNotImplement) {}
84
+ func (p *EnumValues) lazyInit() *EnumValues {
85
+ p.once.Do(func() {
86
+ if len(p.List) > 0 {
87
+ p.byName = make(map[protoreflect.Name]*EnumValue, len(p.List))
88
+ p.byNum = make(map[protoreflect.EnumNumber]*EnumValue, len(p.List))
89
+ for i := range p.List {
90
+ d := &p.List[i]
91
+ if _, ok := p.byName[d.Name()]; !ok {
92
+ p.byName[d.Name()] = d
93
+ }
94
+ if _, ok := p.byNum[d.Number()]; !ok {
95
+ p.byNum[d.Number()] = d
96
+ }
97
+ }
98
+ }
99
+ })
100
+ return p
101
+ }
102
+
103
+ type Messages struct {
104
+ List []Message
105
+ once sync.Once
106
+ byName map[protoreflect.Name]*Message // protected by once
107
+ }
108
+
109
+ func (p *Messages) Len() int {
110
+ return len(p.List)
111
+ }
112
+ func (p *Messages) Get(i int) protoreflect.MessageDescriptor {
113
+ return &p.List[i]
114
+ }
115
+ func (p *Messages) ByName(s protoreflect.Name) protoreflect.MessageDescriptor {
116
+ if d := p.lazyInit().byName[s]; d != nil {
117
+ return d
118
+ }
119
+ return nil
120
+ }
121
+ func (p *Messages) Format(s fmt.State, r rune) {
122
+ descfmt.FormatList(s, r, p)
123
+ }
124
+ func (p *Messages) ProtoInternal(pragma.DoNotImplement) {}
125
+ func (p *Messages) lazyInit() *Messages {
126
+ p.once.Do(func() {
127
+ if len(p.List) > 0 {
128
+ p.byName = make(map[protoreflect.Name]*Message, len(p.List))
129
+ for i := range p.List {
130
+ d := &p.List[i]
131
+ if _, ok := p.byName[d.Name()]; !ok {
132
+ p.byName[d.Name()] = d
133
+ }
134
+ }
135
+ }
136
+ })
137
+ return p
138
+ }
139
+
140
+ type Fields struct {
141
+ List []Field
142
+ once sync.Once
143
+ byName map[protoreflect.Name]*Field // protected by once
144
+ byJSON map[string]*Field // protected by once
145
+ byText map[string]*Field // protected by once
146
+ byNum map[protoreflect.FieldNumber]*Field // protected by once
147
+ }
148
+
149
+ func (p *Fields) Len() int {
150
+ return len(p.List)
151
+ }
152
+ func (p *Fields) Get(i int) protoreflect.FieldDescriptor {
153
+ return &p.List[i]
154
+ }
155
+ func (p *Fields) ByName(s protoreflect.Name) protoreflect.FieldDescriptor {
156
+ if d := p.lazyInit().byName[s]; d != nil {
157
+ return d
158
+ }
159
+ return nil
160
+ }
161
+ func (p *Fields) ByJSONName(s string) protoreflect.FieldDescriptor {
162
+ if d := p.lazyInit().byJSON[s]; d != nil {
163
+ return d
164
+ }
165
+ return nil
166
+ }
167
+ func (p *Fields) ByTextName(s string) protoreflect.FieldDescriptor {
168
+ if d := p.lazyInit().byText[s]; d != nil {
169
+ return d
170
+ }
171
+ return nil
172
+ }
173
+ func (p *Fields) ByNumber(n protoreflect.FieldNumber) protoreflect.FieldDescriptor {
174
+ if d := p.lazyInit().byNum[n]; d != nil {
175
+ return d
176
+ }
177
+ return nil
178
+ }
179
+ func (p *Fields) Format(s fmt.State, r rune) {
180
+ descfmt.FormatList(s, r, p)
181
+ }
182
+ func (p *Fields) ProtoInternal(pragma.DoNotImplement) {}
183
+ func (p *Fields) lazyInit() *Fields {
184
+ p.once.Do(func() {
185
+ if len(p.List) > 0 {
186
+ p.byName = make(map[protoreflect.Name]*Field, len(p.List))
187
+ p.byJSON = make(map[string]*Field, len(p.List))
188
+ p.byText = make(map[string]*Field, len(p.List))
189
+ p.byNum = make(map[protoreflect.FieldNumber]*Field, len(p.List))
190
+ for i := range p.List {
191
+ d := &p.List[i]
192
+ if _, ok := p.byName[d.Name()]; !ok {
193
+ p.byName[d.Name()] = d
194
+ }
195
+ if _, ok := p.byJSON[d.JSONName()]; !ok {
196
+ p.byJSON[d.JSONName()] = d
197
+ }
198
+ if _, ok := p.byText[d.TextName()]; !ok {
199
+ p.byText[d.TextName()] = d
200
+ }
201
+ if _, ok := p.byNum[d.Number()]; !ok {
202
+ p.byNum[d.Number()] = d
203
+ }
204
+ }
205
+ }
206
+ })
207
+ return p
208
+ }
209
+
210
+ type Oneofs struct {
211
+ List []Oneof
212
+ once sync.Once
213
+ byName map[protoreflect.Name]*Oneof // protected by once
214
+ }
215
+
216
+ func (p *Oneofs) Len() int {
217
+ return len(p.List)
218
+ }
219
+ func (p *Oneofs) Get(i int) protoreflect.OneofDescriptor {
220
+ return &p.List[i]
221
+ }
222
+ func (p *Oneofs) ByName(s protoreflect.Name) protoreflect.OneofDescriptor {
223
+ if d := p.lazyInit().byName[s]; d != nil {
224
+ return d
225
+ }
226
+ return nil
227
+ }
228
+ func (p *Oneofs) Format(s fmt.State, r rune) {
229
+ descfmt.FormatList(s, r, p)
230
+ }
231
+ func (p *Oneofs) ProtoInternal(pragma.DoNotImplement) {}
232
+ func (p *Oneofs) lazyInit() *Oneofs {
233
+ p.once.Do(func() {
234
+ if len(p.List) > 0 {
235
+ p.byName = make(map[protoreflect.Name]*Oneof, len(p.List))
236
+ for i := range p.List {
237
+ d := &p.List[i]
238
+ if _, ok := p.byName[d.Name()]; !ok {
239
+ p.byName[d.Name()] = d
240
+ }
241
+ }
242
+ }
243
+ })
244
+ return p
245
+ }
246
+
247
+ type Extensions struct {
248
+ List []Extension
249
+ once sync.Once
250
+ byName map[protoreflect.Name]*Extension // protected by once
251
+ }
252
+
253
+ func (p *Extensions) Len() int {
254
+ return len(p.List)
255
+ }
256
+ func (p *Extensions) Get(i int) protoreflect.ExtensionDescriptor {
257
+ return &p.List[i]
258
+ }
259
+ func (p *Extensions) ByName(s protoreflect.Name) protoreflect.ExtensionDescriptor {
260
+ if d := p.lazyInit().byName[s]; d != nil {
261
+ return d
262
+ }
263
+ return nil
264
+ }
265
+ func (p *Extensions) Format(s fmt.State, r rune) {
266
+ descfmt.FormatList(s, r, p)
267
+ }
268
+ func (p *Extensions) ProtoInternal(pragma.DoNotImplement) {}
269
+ func (p *Extensions) lazyInit() *Extensions {
270
+ p.once.Do(func() {
271
+ if len(p.List) > 0 {
272
+ p.byName = make(map[protoreflect.Name]*Extension, len(p.List))
273
+ for i := range p.List {
274
+ d := &p.List[i]
275
+ if _, ok := p.byName[d.Name()]; !ok {
276
+ p.byName[d.Name()] = d
277
+ }
278
+ }
279
+ }
280
+ })
281
+ return p
282
+ }
283
+
284
+ type Services struct {
285
+ List []Service
286
+ once sync.Once
287
+ byName map[protoreflect.Name]*Service // protected by once
288
+ }
289
+
290
+ func (p *Services) Len() int {
291
+ return len(p.List)
292
+ }
293
+ func (p *Services) Get(i int) protoreflect.ServiceDescriptor {
294
+ return &p.List[i]
295
+ }
296
+ func (p *Services) ByName(s protoreflect.Name) protoreflect.ServiceDescriptor {
297
+ if d := p.lazyInit().byName[s]; d != nil {
298
+ return d
299
+ }
300
+ return nil
301
+ }
302
+ func (p *Services) Format(s fmt.State, r rune) {
303
+ descfmt.FormatList(s, r, p)
304
+ }
305
+ func (p *Services) ProtoInternal(pragma.DoNotImplement) {}
306
+ func (p *Services) lazyInit() *Services {
307
+ p.once.Do(func() {
308
+ if len(p.List) > 0 {
309
+ p.byName = make(map[protoreflect.Name]*Service, len(p.List))
310
+ for i := range p.List {
311
+ d := &p.List[i]
312
+ if _, ok := p.byName[d.Name()]; !ok {
313
+ p.byName[d.Name()] = d
314
+ }
315
+ }
316
+ }
317
+ })
318
+ return p
319
+ }
320
+
321
+ type Methods struct {
322
+ List []Method
323
+ once sync.Once
324
+ byName map[protoreflect.Name]*Method // protected by once
325
+ }
326
+
327
+ func (p *Methods) Len() int {
328
+ return len(p.List)
329
+ }
330
+ func (p *Methods) Get(i int) protoreflect.MethodDescriptor {
331
+ return &p.List[i]
332
+ }
333
+ func (p *Methods) ByName(s protoreflect.Name) protoreflect.MethodDescriptor {
334
+ if d := p.lazyInit().byName[s]; d != nil {
335
+ return d
336
+ }
337
+ return nil
338
+ }
339
+ func (p *Methods) Format(s fmt.State, r rune) {
340
+ descfmt.FormatList(s, r, p)
341
+ }
342
+ func (p *Methods) ProtoInternal(pragma.DoNotImplement) {}
343
+ func (p *Methods) lazyInit() *Methods {
344
+ p.once.Do(func() {
345
+ if len(p.List) > 0 {
346
+ p.byName = make(map[protoreflect.Name]*Method, len(p.List))
347
+ for i := range p.List {
348
+ d := &p.List[i]
349
+ if _, ok := p.byName[d.Name()]; !ok {
350
+ p.byName[d.Name()] = d
351
+ }
352
+ }
353
+ }
354
+ })
355
+ return p
356
+ }