planetscale 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +9 -1
  3. data/.github/workflows/gem-push.yml +9 -2
  4. data/.licenses/go/github.com/matoous/go-nanoid/v2.dep.yml +34 -0
  5. data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +1 -1
  6. data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +1 -1
  7. data/.licenses/go/go.uber.org/zap/buffer.dep.yml +1 -1
  8. data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +1 -1
  9. data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +1 -1
  10. data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +1 -1
  11. data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +1 -1
  12. data/.licenses/go/go.uber.org/zap.dep.yml +1 -1
  13. data/README.md +2 -0
  14. data/controller.go +21 -36
  15. data/go.mod +4 -3
  16. data/go.sum +32 -18
  17. data/lib/planetscale/version.rb +1 -1
  18. data/lib/planetscale.rb +2 -3
  19. data/planetscale.gemspec +1 -1
  20. data/proxy/planetscale-darwin.h +1 -1
  21. data/proxy/planetscale-darwin.so +0 -0
  22. data/proxy/planetscale-linux.h +1 -1
  23. data/proxy/planetscale-linux.so +0 -0
  24. data/proxy.go +1 -5
  25. metadata +3 -345
  26. data/vendor/github.com/armon/circbuf/.gitignore +0 -22
  27. data/vendor/github.com/armon/circbuf/LICENSE +0 -20
  28. data/vendor/github.com/armon/circbuf/README.md +0 -28
  29. data/vendor/github.com/armon/circbuf/circbuf.go +0 -92
  30. data/vendor/github.com/armon/circbuf/go.mod +0 -1
  31. data/vendor/github.com/golang/protobuf/AUTHORS +0 -3
  32. data/vendor/github.com/golang/protobuf/CONTRIBUTORS +0 -3
  33. data/vendor/github.com/golang/protobuf/LICENSE +0 -28
  34. data/vendor/github.com/golang/protobuf/proto/buffer.go +0 -324
  35. data/vendor/github.com/golang/protobuf/proto/defaults.go +0 -63
  36. data/vendor/github.com/golang/protobuf/proto/deprecated.go +0 -113
  37. data/vendor/github.com/golang/protobuf/proto/discard.go +0 -58
  38. data/vendor/github.com/golang/protobuf/proto/extensions.go +0 -356
  39. data/vendor/github.com/golang/protobuf/proto/properties.go +0 -306
  40. data/vendor/github.com/golang/protobuf/proto/proto.go +0 -167
  41. data/vendor/github.com/golang/protobuf/proto/registry.go +0 -317
  42. data/vendor/github.com/golang/protobuf/proto/text_decode.go +0 -801
  43. data/vendor/github.com/golang/protobuf/proto/text_encode.go +0 -560
  44. data/vendor/github.com/golang/protobuf/proto/wire.go +0 -78
  45. data/vendor/github.com/golang/protobuf/proto/wrappers.go +0 -34
  46. data/vendor/github.com/gorilla/mux/AUTHORS +0 -8
  47. data/vendor/github.com/gorilla/mux/LICENSE +0 -27
  48. data/vendor/github.com/gorilla/mux/README.md +0 -805
  49. data/vendor/github.com/gorilla/mux/doc.go +0 -306
  50. data/vendor/github.com/gorilla/mux/go.mod +0 -3
  51. data/vendor/github.com/gorilla/mux/middleware.go +0 -74
  52. data/vendor/github.com/gorilla/mux/mux.go +0 -606
  53. data/vendor/github.com/gorilla/mux/regexp.go +0 -388
  54. data/vendor/github.com/gorilla/mux/route.go +0 -736
  55. data/vendor/github.com/gorilla/mux/test_helpers.go +0 -19
  56. data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +0 -363
  57. data/vendor/github.com/hashicorp/go-cleanhttp/README.md +0 -30
  58. data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +0 -58
  59. data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +0 -20
  60. data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +0 -3
  61. data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +0 -48
  62. data/vendor/github.com/mitchellh/go-homedir/LICENSE +0 -21
  63. data/vendor/github.com/mitchellh/go-homedir/README.md +0 -14
  64. data/vendor/github.com/mitchellh/go-homedir/go.mod +0 -1
  65. data/vendor/github.com/mitchellh/go-homedir/homedir.go +0 -167
  66. data/vendor/github.com/pkg/errors/.gitignore +0 -24
  67. data/vendor/github.com/pkg/errors/.travis.yml +0 -10
  68. data/vendor/github.com/pkg/errors/LICENSE +0 -23
  69. data/vendor/github.com/pkg/errors/Makefile +0 -44
  70. data/vendor/github.com/pkg/errors/README.md +0 -59
  71. data/vendor/github.com/pkg/errors/appveyor.yml +0 -32
  72. data/vendor/github.com/pkg/errors/errors.go +0 -288
  73. data/vendor/github.com/pkg/errors/go113.go +0 -38
  74. data/vendor/github.com/pkg/errors/stack.go +0 -177
  75. data/vendor/github.com/planetscale/planetscale-go/LICENSE +0 -202
  76. data/vendor/github.com/planetscale/planetscale-go/planetscale/audit_logs.go +0 -136
  77. data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +0 -139
  78. data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +0 -252
  79. data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +0 -166
  80. data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +0 -312
  81. data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +0 -133
  82. data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +0 -368
  83. data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +0 -103
  84. data/vendor/github.com/planetscale/planetscale-go/planetscale/regions.go +0 -52
  85. data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +0 -163
  86. data/vendor/github.com/planetscale/sql-proxy/LICENSE +0 -202
  87. data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +0 -476
  88. data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +0 -73
  89. data/vendor/go.uber.org/atomic/.codecov.yml +0 -19
  90. data/vendor/go.uber.org/atomic/.gitignore +0 -12
  91. data/vendor/go.uber.org/atomic/.travis.yml +0 -27
  92. data/vendor/go.uber.org/atomic/CHANGELOG.md +0 -76
  93. data/vendor/go.uber.org/atomic/LICENSE.txt +0 -19
  94. data/vendor/go.uber.org/atomic/Makefile +0 -78
  95. data/vendor/go.uber.org/atomic/README.md +0 -63
  96. data/vendor/go.uber.org/atomic/bool.go +0 -81
  97. data/vendor/go.uber.org/atomic/bool_ext.go +0 -53
  98. data/vendor/go.uber.org/atomic/doc.go +0 -23
  99. data/vendor/go.uber.org/atomic/duration.go +0 -82
  100. data/vendor/go.uber.org/atomic/duration_ext.go +0 -40
  101. data/vendor/go.uber.org/atomic/error.go +0 -51
  102. data/vendor/go.uber.org/atomic/error_ext.go +0 -39
  103. data/vendor/go.uber.org/atomic/float64.go +0 -76
  104. data/vendor/go.uber.org/atomic/float64_ext.go +0 -47
  105. data/vendor/go.uber.org/atomic/gen.go +0 -26
  106. data/vendor/go.uber.org/atomic/go.mod +0 -8
  107. data/vendor/go.uber.org/atomic/go.sum +0 -9
  108. data/vendor/go.uber.org/atomic/int32.go +0 -102
  109. data/vendor/go.uber.org/atomic/int64.go +0 -102
  110. data/vendor/go.uber.org/atomic/nocmp.go +0 -35
  111. data/vendor/go.uber.org/atomic/string.go +0 -54
  112. data/vendor/go.uber.org/atomic/string_ext.go +0 -43
  113. data/vendor/go.uber.org/atomic/uint32.go +0 -102
  114. data/vendor/go.uber.org/atomic/uint64.go +0 -102
  115. data/vendor/go.uber.org/atomic/value.go +0 -31
  116. data/vendor/go.uber.org/multierr/.codecov.yml +0 -15
  117. data/vendor/go.uber.org/multierr/.gitignore +0 -4
  118. data/vendor/go.uber.org/multierr/.travis.yml +0 -23
  119. data/vendor/go.uber.org/multierr/CHANGELOG.md +0 -60
  120. data/vendor/go.uber.org/multierr/LICENSE.txt +0 -19
  121. data/vendor/go.uber.org/multierr/Makefile +0 -42
  122. data/vendor/go.uber.org/multierr/README.md +0 -23
  123. data/vendor/go.uber.org/multierr/error.go +0 -449
  124. data/vendor/go.uber.org/multierr/glide.yaml +0 -8
  125. data/vendor/go.uber.org/multierr/go.mod +0 -8
  126. data/vendor/go.uber.org/multierr/go.sum +0 -11
  127. data/vendor/go.uber.org/multierr/go113.go +0 -52
  128. data/vendor/go.uber.org/zap/.codecov.yml +0 -17
  129. data/vendor/go.uber.org/zap/.gitignore +0 -32
  130. data/vendor/go.uber.org/zap/.readme.tmpl +0 -109
  131. data/vendor/go.uber.org/zap/CHANGELOG.md +0 -492
  132. data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +0 -75
  133. data/vendor/go.uber.org/zap/CONTRIBUTING.md +0 -75
  134. data/vendor/go.uber.org/zap/FAQ.md +0 -164
  135. data/vendor/go.uber.org/zap/LICENSE.txt +0 -19
  136. data/vendor/go.uber.org/zap/Makefile +0 -73
  137. data/vendor/go.uber.org/zap/README.md +0 -134
  138. data/vendor/go.uber.org/zap/array.go +0 -320
  139. data/vendor/go.uber.org/zap/buffer/buffer.go +0 -141
  140. data/vendor/go.uber.org/zap/buffer/pool.go +0 -49
  141. data/vendor/go.uber.org/zap/checklicense.sh +0 -17
  142. data/vendor/go.uber.org/zap/config.go +0 -264
  143. data/vendor/go.uber.org/zap/doc.go +0 -113
  144. data/vendor/go.uber.org/zap/encoder.go +0 -79
  145. data/vendor/go.uber.org/zap/error.go +0 -80
  146. data/vendor/go.uber.org/zap/field.go +0 -549
  147. data/vendor/go.uber.org/zap/flag.go +0 -39
  148. data/vendor/go.uber.org/zap/glide.yaml +0 -34
  149. data/vendor/go.uber.org/zap/global.go +0 -168
  150. data/vendor/go.uber.org/zap/global_go112.go +0 -26
  151. data/vendor/go.uber.org/zap/global_prego112.go +0 -26
  152. data/vendor/go.uber.org/zap/go.mod +0 -14
  153. data/vendor/go.uber.org/zap/go.sum +0 -54
  154. data/vendor/go.uber.org/zap/http_handler.go +0 -132
  155. data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +0 -31
  156. data/vendor/go.uber.org/zap/internal/color/color.go +0 -44
  157. data/vendor/go.uber.org/zap/internal/exit/exit.go +0 -64
  158. data/vendor/go.uber.org/zap/level.go +0 -132
  159. data/vendor/go.uber.org/zap/logger.go +0 -348
  160. data/vendor/go.uber.org/zap/options.go +0 -148
  161. data/vendor/go.uber.org/zap/sink.go +0 -161
  162. data/vendor/go.uber.org/zap/stacktrace.go +0 -85
  163. data/vendor/go.uber.org/zap/sugar.go +0 -315
  164. data/vendor/go.uber.org/zap/time.go +0 -27
  165. data/vendor/go.uber.org/zap/writer.go +0 -99
  166. data/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go +0 -188
  167. data/vendor/go.uber.org/zap/zapcore/clock.go +0 -50
  168. data/vendor/go.uber.org/zap/zapcore/console_encoder.go +0 -161
  169. data/vendor/go.uber.org/zap/zapcore/core.go +0 -113
  170. data/vendor/go.uber.org/zap/zapcore/doc.go +0 -24
  171. data/vendor/go.uber.org/zap/zapcore/encoder.go +0 -443
  172. data/vendor/go.uber.org/zap/zapcore/entry.go +0 -264
  173. data/vendor/go.uber.org/zap/zapcore/error.go +0 -132
  174. data/vendor/go.uber.org/zap/zapcore/field.go +0 -233
  175. data/vendor/go.uber.org/zap/zapcore/hook.go +0 -68
  176. data/vendor/go.uber.org/zap/zapcore/increase_level.go +0 -66
  177. data/vendor/go.uber.org/zap/zapcore/json_encoder.go +0 -534
  178. data/vendor/go.uber.org/zap/zapcore/level.go +0 -175
  179. data/vendor/go.uber.org/zap/zapcore/level_strings.go +0 -46
  180. data/vendor/go.uber.org/zap/zapcore/marshaler.go +0 -61
  181. data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +0 -179
  182. data/vendor/go.uber.org/zap/zapcore/sampler.go +0 -208
  183. data/vendor/go.uber.org/zap/zapcore/tee.go +0 -81
  184. data/vendor/go.uber.org/zap/zapcore/write_syncer.go +0 -122
  185. data/vendor/golang.org/x/net/AUTHORS +0 -3
  186. data/vendor/golang.org/x/net/CONTRIBUTORS +0 -3
  187. data/vendor/golang.org/x/net/LICENSE +0 -27
  188. data/vendor/golang.org/x/net/PATENTS +0 -22
  189. data/vendor/golang.org/x/net/context/context.go +0 -56
  190. data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +0 -71
  191. data/vendor/golang.org/x/net/context/go17.go +0 -73
  192. data/vendor/golang.org/x/net/context/go19.go +0 -21
  193. data/vendor/golang.org/x/net/context/pre_go17.go +0 -301
  194. data/vendor/golang.org/x/net/context/pre_go19.go +0 -110
  195. data/vendor/golang.org/x/oauth2/.travis.yml +0 -13
  196. data/vendor/golang.org/x/oauth2/AUTHORS +0 -3
  197. data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +0 -26
  198. data/vendor/golang.org/x/oauth2/CONTRIBUTORS +0 -3
  199. data/vendor/golang.org/x/oauth2/LICENSE +0 -27
  200. data/vendor/golang.org/x/oauth2/README.md +0 -36
  201. data/vendor/golang.org/x/oauth2/go.mod +0 -9
  202. data/vendor/golang.org/x/oauth2/go.sum +0 -361
  203. data/vendor/golang.org/x/oauth2/internal/client_appengine.go +0 -14
  204. data/vendor/golang.org/x/oauth2/internal/doc.go +0 -6
  205. data/vendor/golang.org/x/oauth2/internal/oauth2.go +0 -37
  206. data/vendor/golang.org/x/oauth2/internal/token.go +0 -294
  207. data/vendor/golang.org/x/oauth2/internal/transport.go +0 -33
  208. data/vendor/golang.org/x/oauth2/oauth2.go +0 -381
  209. data/vendor/golang.org/x/oauth2/token.go +0 -178
  210. data/vendor/golang.org/x/oauth2/transport.go +0 -89
  211. data/vendor/google.golang.org/appengine/LICENSE +0 -202
  212. data/vendor/google.golang.org/appengine/internal/api.go +0 -678
  213. data/vendor/google.golang.org/appengine/internal/api_classic.go +0 -169
  214. data/vendor/google.golang.org/appengine/internal/api_common.go +0 -123
  215. data/vendor/google.golang.org/appengine/internal/app_id.go +0 -28
  216. data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +0 -308
  217. data/vendor/google.golang.org/appengine/internal/base/api_base.proto +0 -33
  218. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +0 -4367
  219. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +0 -551
  220. data/vendor/google.golang.org/appengine/internal/identity.go +0 -55
  221. data/vendor/google.golang.org/appengine/internal/identity_classic.go +0 -61
  222. data/vendor/google.golang.org/appengine/internal/identity_flex.go +0 -11
  223. data/vendor/google.golang.org/appengine/internal/identity_vm.go +0 -134
  224. data/vendor/google.golang.org/appengine/internal/internal.go +0 -110
  225. data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +0 -1313
  226. data/vendor/google.golang.org/appengine/internal/log/log_service.proto +0 -150
  227. data/vendor/google.golang.org/appengine/internal/main.go +0 -16
  228. data/vendor/google.golang.org/appengine/internal/main_common.go +0 -7
  229. data/vendor/google.golang.org/appengine/internal/main_vm.go +0 -69
  230. data/vendor/google.golang.org/appengine/internal/metadata.go +0 -60
  231. data/vendor/google.golang.org/appengine/internal/net.go +0 -56
  232. data/vendor/google.golang.org/appengine/internal/regen.sh +0 -40
  233. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +0 -361
  234. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +0 -44
  235. data/vendor/google.golang.org/appengine/internal/transaction.go +0 -115
  236. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +0 -527
  237. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +0 -64
  238. data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +0 -210
  239. data/vendor/google.golang.org/protobuf/AUTHORS +0 -3
  240. data/vendor/google.golang.org/protobuf/CONTRIBUTORS +0 -3
  241. data/vendor/google.golang.org/protobuf/LICENSE +0 -27
  242. data/vendor/google.golang.org/protobuf/PATENTS +0 -22
  243. data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +0 -773
  244. data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +0 -7
  245. data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +0 -371
  246. data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +0 -538
  247. data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +0 -318
  248. data/vendor/google.golang.org/protobuf/internal/descopts/options.go +0 -29
  249. data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +0 -69
  250. data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +0 -213
  251. data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +0 -241
  252. data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +0 -207
  253. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +0 -665
  254. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +0 -190
  255. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +0 -161
  256. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +0 -373
  257. data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +0 -29
  258. data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +0 -265
  259. data/vendor/google.golang.org/protobuf/internal/errors/errors.go +0 -89
  260. data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +0 -39
  261. data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +0 -12
  262. data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +0 -158
  263. data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +0 -631
  264. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +0 -471
  265. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +0 -704
  266. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +0 -450
  267. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +0 -356
  268. data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +0 -107
  269. data/vendor/google.golang.org/protobuf/internal/filetype/build.go +0 -297
  270. data/vendor/google.golang.org/protobuf/internal/flags/flags.go +0 -24
  271. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +0 -9
  272. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +0 -9
  273. data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +0 -34
  274. data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +0 -106
  275. data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +0 -829
  276. data/vendor/google.golang.org/protobuf/internal/genid/doc.go +0 -11
  277. data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +0 -34
  278. data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +0 -19
  279. data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +0 -31
  280. data/vendor/google.golang.org/protobuf/internal/genid/goname.go +0 -25
  281. data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +0 -16
  282. data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +0 -31
  283. data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +0 -116
  284. data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +0 -34
  285. data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +0 -184
  286. data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +0 -13
  287. data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +0 -175
  288. data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +0 -177
  289. data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +0 -141
  290. data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +0 -223
  291. data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +0 -830
  292. data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +0 -5637
  293. data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +0 -388
  294. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +0 -37
  295. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +0 -11
  296. data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +0 -217
  297. data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +0 -123
  298. data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +0 -209
  299. data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +0 -557
  300. data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +0 -17
  301. data/vendor/google.golang.org/protobuf/internal/impl/convert.go +0 -496
  302. data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +0 -141
  303. data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +0 -121
  304. data/vendor/google.golang.org/protobuf/internal/impl/decode.go +0 -276
  305. data/vendor/google.golang.org/protobuf/internal/impl/encode.go +0 -201
  306. data/vendor/google.golang.org/protobuf/internal/impl/enum.go +0 -21
  307. data/vendor/google.golang.org/protobuf/internal/impl/extension.go +0 -156
  308. data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +0 -219
  309. data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +0 -92
  310. data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +0 -176
  311. data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +0 -81
  312. data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +0 -558
  313. data/vendor/google.golang.org/protobuf/internal/impl/merge.go +0 -176
  314. data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +0 -209
  315. data/vendor/google.golang.org/protobuf/internal/impl/message.go +0 -276
  316. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +0 -465
  317. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +0 -543
  318. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +0 -249
  319. data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +0 -178
  320. data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +0 -174
  321. data/vendor/google.golang.org/protobuf/internal/impl/validate.go +0 -576
  322. data/vendor/google.golang.org/protobuf/internal/impl/weak.go +0 -74
  323. data/vendor/google.golang.org/protobuf/internal/order/order.go +0 -89
  324. data/vendor/google.golang.org/protobuf/internal/order/range.go +0 -115
  325. data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +0 -29
  326. data/vendor/google.golang.org/protobuf/internal/set/ints.go +0 -58
  327. data/vendor/google.golang.org/protobuf/internal/strs/strings.go +0 -196
  328. data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +0 -27
  329. data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +0 -94
  330. data/vendor/google.golang.org/protobuf/internal/version/version.go +0 -79
  331. data/vendor/google.golang.org/protobuf/proto/checkinit.go +0 -71
  332. data/vendor/google.golang.org/protobuf/proto/decode.go +0 -278
  333. data/vendor/google.golang.org/protobuf/proto/decode_gen.go +0 -603
  334. data/vendor/google.golang.org/protobuf/proto/doc.go +0 -94
  335. data/vendor/google.golang.org/protobuf/proto/encode.go +0 -319
  336. data/vendor/google.golang.org/protobuf/proto/encode_gen.go +0 -97
  337. data/vendor/google.golang.org/protobuf/proto/equal.go +0 -167
  338. data/vendor/google.golang.org/protobuf/proto/extension.go +0 -92
  339. data/vendor/google.golang.org/protobuf/proto/merge.go +0 -139
  340. data/vendor/google.golang.org/protobuf/proto/messageset.go +0 -93
  341. data/vendor/google.golang.org/protobuf/proto/proto.go +0 -43
  342. data/vendor/google.golang.org/protobuf/proto/proto_methods.go +0 -19
  343. data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +0 -19
  344. data/vendor/google.golang.org/protobuf/proto/reset.go +0 -43
  345. data/vendor/google.golang.org/protobuf/proto/size.go +0 -97
  346. data/vendor/google.golang.org/protobuf/proto/size_gen.go +0 -55
  347. data/vendor/google.golang.org/protobuf/proto/wrappers.go +0 -29
  348. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +0 -276
  349. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +0 -248
  350. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +0 -286
  351. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +0 -374
  352. data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +0 -252
  353. data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +0 -77
  354. data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +0 -504
  355. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +0 -128
  356. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +0 -461
  357. data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +0 -665
  358. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +0 -285
  359. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +0 -59
  360. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +0 -411
  361. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +0 -98
  362. data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +0 -869
  363. data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +0 -15
  364. data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +0 -167
  365. data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +0 -44
  366. data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +0 -56
  367. data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +0 -4039
  368. data/vendor/modules.txt +0 -79
@@ -1,665 +0,0 @@
1
- // Copyright 2018 The Go Authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style
3
- // license that can be found in the LICENSE file.
4
-
5
- package text
6
-
7
- import (
8
- "bytes"
9
- "fmt"
10
- "io"
11
- "regexp"
12
- "strconv"
13
- "unicode/utf8"
14
-
15
- "google.golang.org/protobuf/internal/errors"
16
- )
17
-
18
- // Decoder is a token-based textproto decoder.
19
- type Decoder struct {
20
- // lastCall is last method called, either readCall or peekCall.
21
- // Initial value is readCall.
22
- lastCall call
23
-
24
- // lastToken contains the last read token.
25
- lastToken Token
26
-
27
- // lastErr contains the last read error.
28
- lastErr error
29
-
30
- // openStack is a stack containing the byte characters for MessageOpen and
31
- // ListOpen kinds. The top of stack represents the message or the list that
32
- // the current token is nested in. An empty stack means the current token is
33
- // at the top level message. The characters '{' and '<' both represent the
34
- // MessageOpen kind.
35
- openStack []byte
36
-
37
- // orig is used in reporting line and column.
38
- orig []byte
39
- // in contains the unconsumed input.
40
- in []byte
41
- }
42
-
43
- // NewDecoder returns a Decoder to read the given []byte.
44
- func NewDecoder(b []byte) *Decoder {
45
- return &Decoder{orig: b, in: b}
46
- }
47
-
48
- // ErrUnexpectedEOF means that EOF was encountered in the middle of the input.
49
- var ErrUnexpectedEOF = errors.New("%v", io.ErrUnexpectedEOF)
50
-
51
- // call specifies which Decoder method was invoked.
52
- type call uint8
53
-
54
- const (
55
- readCall call = iota
56
- peekCall
57
- )
58
-
59
- // Peek looks ahead and returns the next token and error without advancing a read.
60
- func (d *Decoder) Peek() (Token, error) {
61
- defer func() { d.lastCall = peekCall }()
62
- if d.lastCall == readCall {
63
- d.lastToken, d.lastErr = d.Read()
64
- }
65
- return d.lastToken, d.lastErr
66
- }
67
-
68
- // Read returns the next token.
69
- // It will return an error if there is no valid token.
70
- func (d *Decoder) Read() (Token, error) {
71
- defer func() { d.lastCall = readCall }()
72
- if d.lastCall == peekCall {
73
- return d.lastToken, d.lastErr
74
- }
75
-
76
- tok, err := d.parseNext(d.lastToken.kind)
77
- if err != nil {
78
- return Token{}, err
79
- }
80
-
81
- switch tok.kind {
82
- case comma, semicolon:
83
- tok, err = d.parseNext(tok.kind)
84
- if err != nil {
85
- return Token{}, err
86
- }
87
- }
88
- d.lastToken = tok
89
- return tok, nil
90
- }
91
-
92
- const (
93
- mismatchedFmt = "mismatched close character %q"
94
- unexpectedFmt = "unexpected character %q"
95
- )
96
-
97
- // parseNext parses the next Token based on given last kind.
98
- func (d *Decoder) parseNext(lastKind Kind) (Token, error) {
99
- // Trim leading spaces.
100
- d.consume(0)
101
- isEOF := false
102
- if len(d.in) == 0 {
103
- isEOF = true
104
- }
105
-
106
- switch lastKind {
107
- case EOF:
108
- return d.consumeToken(EOF, 0, 0), nil
109
-
110
- case bof:
111
- // Start of top level message. Next token can be EOF or Name.
112
- if isEOF {
113
- return d.consumeToken(EOF, 0, 0), nil
114
- }
115
- return d.parseFieldName()
116
-
117
- case Name:
118
- // Next token can be MessageOpen, ListOpen or Scalar.
119
- if isEOF {
120
- return Token{}, ErrUnexpectedEOF
121
- }
122
- switch ch := d.in[0]; ch {
123
- case '{', '<':
124
- d.pushOpenStack(ch)
125
- return d.consumeToken(MessageOpen, 1, 0), nil
126
- case '[':
127
- d.pushOpenStack(ch)
128
- return d.consumeToken(ListOpen, 1, 0), nil
129
- default:
130
- return d.parseScalar()
131
- }
132
-
133
- case Scalar:
134
- openKind, closeCh := d.currentOpenKind()
135
- switch openKind {
136
- case bof:
137
- // Top level message.
138
- // Next token can be EOF, comma, semicolon or Name.
139
- if isEOF {
140
- return d.consumeToken(EOF, 0, 0), nil
141
- }
142
- switch d.in[0] {
143
- case ',':
144
- return d.consumeToken(comma, 1, 0), nil
145
- case ';':
146
- return d.consumeToken(semicolon, 1, 0), nil
147
- default:
148
- return d.parseFieldName()
149
- }
150
-
151
- case MessageOpen:
152
- // Next token can be MessageClose, comma, semicolon or Name.
153
- if isEOF {
154
- return Token{}, ErrUnexpectedEOF
155
- }
156
- switch ch := d.in[0]; ch {
157
- case closeCh:
158
- d.popOpenStack()
159
- return d.consumeToken(MessageClose, 1, 0), nil
160
- case otherCloseChar[closeCh]:
161
- return Token{}, d.newSyntaxError(mismatchedFmt, ch)
162
- case ',':
163
- return d.consumeToken(comma, 1, 0), nil
164
- case ';':
165
- return d.consumeToken(semicolon, 1, 0), nil
166
- default:
167
- return d.parseFieldName()
168
- }
169
-
170
- case ListOpen:
171
- // Next token can be ListClose or comma.
172
- if isEOF {
173
- return Token{}, ErrUnexpectedEOF
174
- }
175
- switch ch := d.in[0]; ch {
176
- case ']':
177
- d.popOpenStack()
178
- return d.consumeToken(ListClose, 1, 0), nil
179
- case ',':
180
- return d.consumeToken(comma, 1, 0), nil
181
- default:
182
- return Token{}, d.newSyntaxError(unexpectedFmt, ch)
183
- }
184
- }
185
-
186
- case MessageOpen:
187
- // Next token can be MessageClose or Name.
188
- if isEOF {
189
- return Token{}, ErrUnexpectedEOF
190
- }
191
- _, closeCh := d.currentOpenKind()
192
- switch ch := d.in[0]; ch {
193
- case closeCh:
194
- d.popOpenStack()
195
- return d.consumeToken(MessageClose, 1, 0), nil
196
- case otherCloseChar[closeCh]:
197
- return Token{}, d.newSyntaxError(mismatchedFmt, ch)
198
- default:
199
- return d.parseFieldName()
200
- }
201
-
202
- case MessageClose:
203
- openKind, closeCh := d.currentOpenKind()
204
- switch openKind {
205
- case bof:
206
- // Top level message.
207
- // Next token can be EOF, comma, semicolon or Name.
208
- if isEOF {
209
- return d.consumeToken(EOF, 0, 0), nil
210
- }
211
- switch ch := d.in[0]; ch {
212
- case ',':
213
- return d.consumeToken(comma, 1, 0), nil
214
- case ';':
215
- return d.consumeToken(semicolon, 1, 0), nil
216
- default:
217
- return d.parseFieldName()
218
- }
219
-
220
- case MessageOpen:
221
- // Next token can be MessageClose, comma, semicolon or Name.
222
- if isEOF {
223
- return Token{}, ErrUnexpectedEOF
224
- }
225
- switch ch := d.in[0]; ch {
226
- case closeCh:
227
- d.popOpenStack()
228
- return d.consumeToken(MessageClose, 1, 0), nil
229
- case otherCloseChar[closeCh]:
230
- return Token{}, d.newSyntaxError(mismatchedFmt, ch)
231
- case ',':
232
- return d.consumeToken(comma, 1, 0), nil
233
- case ';':
234
- return d.consumeToken(semicolon, 1, 0), nil
235
- default:
236
- return d.parseFieldName()
237
- }
238
-
239
- case ListOpen:
240
- // Next token can be ListClose or comma
241
- if isEOF {
242
- return Token{}, ErrUnexpectedEOF
243
- }
244
- switch ch := d.in[0]; ch {
245
- case closeCh:
246
- d.popOpenStack()
247
- return d.consumeToken(ListClose, 1, 0), nil
248
- case ',':
249
- return d.consumeToken(comma, 1, 0), nil
250
- default:
251
- return Token{}, d.newSyntaxError(unexpectedFmt, ch)
252
- }
253
- }
254
-
255
- case ListOpen:
256
- // Next token can be ListClose, MessageStart or Scalar.
257
- if isEOF {
258
- return Token{}, ErrUnexpectedEOF
259
- }
260
- switch ch := d.in[0]; ch {
261
- case ']':
262
- d.popOpenStack()
263
- return d.consumeToken(ListClose, 1, 0), nil
264
- case '{', '<':
265
- d.pushOpenStack(ch)
266
- return d.consumeToken(MessageOpen, 1, 0), nil
267
- default:
268
- return d.parseScalar()
269
- }
270
-
271
- case ListClose:
272
- openKind, closeCh := d.currentOpenKind()
273
- switch openKind {
274
- case bof:
275
- // Top level message.
276
- // Next token can be EOF, comma, semicolon or Name.
277
- if isEOF {
278
- return d.consumeToken(EOF, 0, 0), nil
279
- }
280
- switch ch := d.in[0]; ch {
281
- case ',':
282
- return d.consumeToken(comma, 1, 0), nil
283
- case ';':
284
- return d.consumeToken(semicolon, 1, 0), nil
285
- default:
286
- return d.parseFieldName()
287
- }
288
-
289
- case MessageOpen:
290
- // Next token can be MessageClose, comma, semicolon or Name.
291
- if isEOF {
292
- return Token{}, ErrUnexpectedEOF
293
- }
294
- switch ch := d.in[0]; ch {
295
- case closeCh:
296
- d.popOpenStack()
297
- return d.consumeToken(MessageClose, 1, 0), nil
298
- case otherCloseChar[closeCh]:
299
- return Token{}, d.newSyntaxError(mismatchedFmt, ch)
300
- case ',':
301
- return d.consumeToken(comma, 1, 0), nil
302
- case ';':
303
- return d.consumeToken(semicolon, 1, 0), nil
304
- default:
305
- return d.parseFieldName()
306
- }
307
-
308
- default:
309
- // It is not possible to have this case. Let it panic below.
310
- }
311
-
312
- case comma, semicolon:
313
- openKind, closeCh := d.currentOpenKind()
314
- switch openKind {
315
- case bof:
316
- // Top level message. Next token can be EOF or Name.
317
- if isEOF {
318
- return d.consumeToken(EOF, 0, 0), nil
319
- }
320
- return d.parseFieldName()
321
-
322
- case MessageOpen:
323
- // Next token can be MessageClose or Name.
324
- if isEOF {
325
- return Token{}, ErrUnexpectedEOF
326
- }
327
- switch ch := d.in[0]; ch {
328
- case closeCh:
329
- d.popOpenStack()
330
- return d.consumeToken(MessageClose, 1, 0), nil
331
- case otherCloseChar[closeCh]:
332
- return Token{}, d.newSyntaxError(mismatchedFmt, ch)
333
- default:
334
- return d.parseFieldName()
335
- }
336
-
337
- case ListOpen:
338
- if lastKind == semicolon {
339
- // It is not be possible to have this case as logic here
340
- // should not have produced a semicolon Token when inside a
341
- // list. Let it panic below.
342
- break
343
- }
344
- // Next token can be MessageOpen or Scalar.
345
- if isEOF {
346
- return Token{}, ErrUnexpectedEOF
347
- }
348
- switch ch := d.in[0]; ch {
349
- case '{', '<':
350
- d.pushOpenStack(ch)
351
- return d.consumeToken(MessageOpen, 1, 0), nil
352
- default:
353
- return d.parseScalar()
354
- }
355
- }
356
- }
357
-
358
- line, column := d.Position(len(d.orig) - len(d.in))
359
- panic(fmt.Sprintf("Decoder.parseNext: bug at handling line %d:%d with lastKind=%v", line, column, lastKind))
360
- }
361
-
362
- var otherCloseChar = map[byte]byte{
363
- '}': '>',
364
- '>': '}',
365
- }
366
-
367
- // currentOpenKind indicates whether current position is inside a message, list
368
- // or top-level message by returning MessageOpen, ListOpen or bof respectively.
369
- // If the returned kind is either a MessageOpen or ListOpen, it also returns the
370
- // corresponding closing character.
371
- func (d *Decoder) currentOpenKind() (Kind, byte) {
372
- if len(d.openStack) == 0 {
373
- return bof, 0
374
- }
375
- openCh := d.openStack[len(d.openStack)-1]
376
- switch openCh {
377
- case '{':
378
- return MessageOpen, '}'
379
- case '<':
380
- return MessageOpen, '>'
381
- case '[':
382
- return ListOpen, ']'
383
- }
384
- panic(fmt.Sprintf("Decoder: openStack contains invalid byte %s", string(openCh)))
385
- }
386
-
387
- func (d *Decoder) pushOpenStack(ch byte) {
388
- d.openStack = append(d.openStack, ch)
389
- }
390
-
391
- func (d *Decoder) popOpenStack() {
392
- d.openStack = d.openStack[:len(d.openStack)-1]
393
- }
394
-
395
- // parseFieldName parses field name and separator.
396
- func (d *Decoder) parseFieldName() (tok Token, err error) {
397
- defer func() {
398
- if err == nil && d.tryConsumeChar(':') {
399
- tok.attrs |= hasSeparator
400
- }
401
- }()
402
-
403
- // Extension or Any type URL.
404
- if d.in[0] == '[' {
405
- return d.parseTypeName()
406
- }
407
-
408
- // Identifier.
409
- if size := parseIdent(d.in, false); size > 0 {
410
- return d.consumeToken(Name, size, uint8(IdentName)), nil
411
- }
412
-
413
- // Field number. Identify if input is a valid number that is not negative
414
- // and is decimal integer within 32-bit range.
415
- if num := parseNumber(d.in); num.size > 0 {
416
- if !num.neg && num.kind == numDec {
417
- if _, err := strconv.ParseInt(string(d.in[:num.size]), 10, 32); err == nil {
418
- return d.consumeToken(Name, num.size, uint8(FieldNumber)), nil
419
- }
420
- }
421
- return Token{}, d.newSyntaxError("invalid field number: %s", d.in[:num.size])
422
- }
423
-
424
- return Token{}, d.newSyntaxError("invalid field name: %s", errRegexp.Find(d.in))
425
- }
426
-
427
- // parseTypeName parses Any type URL or extension field name. The name is
428
- // enclosed in [ and ] characters. The C++ parser does not handle many legal URL
429
- // strings. This implementation is more liberal and allows for the pattern
430
- // ^[-_a-zA-Z0-9]+([./][-_a-zA-Z0-9]+)*`). Whitespaces and comments are allowed
431
- // in between [ ], '.', '/' and the sub names.
432
- func (d *Decoder) parseTypeName() (Token, error) {
433
- startPos := len(d.orig) - len(d.in)
434
- // Use alias s to advance first in order to use d.in for error handling.
435
- // Caller already checks for [ as first character.
436
- s := consume(d.in[1:], 0)
437
- if len(s) == 0 {
438
- return Token{}, ErrUnexpectedEOF
439
- }
440
-
441
- var name []byte
442
- for len(s) > 0 && isTypeNameChar(s[0]) {
443
- name = append(name, s[0])
444
- s = s[1:]
445
- }
446
- s = consume(s, 0)
447
-
448
- var closed bool
449
- for len(s) > 0 && !closed {
450
- switch {
451
- case s[0] == ']':
452
- s = s[1:]
453
- closed = true
454
-
455
- case s[0] == '/', s[0] == '.':
456
- if len(name) > 0 && (name[len(name)-1] == '/' || name[len(name)-1] == '.') {
457
- return Token{}, d.newSyntaxError("invalid type URL/extension field name: %s",
458
- d.orig[startPos:len(d.orig)-len(s)+1])
459
- }
460
- name = append(name, s[0])
461
- s = s[1:]
462
- s = consume(s, 0)
463
- for len(s) > 0 && isTypeNameChar(s[0]) {
464
- name = append(name, s[0])
465
- s = s[1:]
466
- }
467
- s = consume(s, 0)
468
-
469
- default:
470
- return Token{}, d.newSyntaxError(
471
- "invalid type URL/extension field name: %s", d.orig[startPos:len(d.orig)-len(s)+1])
472
- }
473
- }
474
-
475
- if !closed {
476
- return Token{}, ErrUnexpectedEOF
477
- }
478
-
479
- // First character cannot be '.'. Last character cannot be '.' or '/'.
480
- size := len(name)
481
- if size == 0 || name[0] == '.' || name[size-1] == '.' || name[size-1] == '/' {
482
- return Token{}, d.newSyntaxError("invalid type URL/extension field name: %s",
483
- d.orig[startPos:len(d.orig)-len(s)])
484
- }
485
-
486
- d.in = s
487
- endPos := len(d.orig) - len(d.in)
488
- d.consume(0)
489
-
490
- return Token{
491
- kind: Name,
492
- attrs: uint8(TypeName),
493
- pos: startPos,
494
- raw: d.orig[startPos:endPos],
495
- str: string(name),
496
- }, nil
497
- }
498
-
499
- func isTypeNameChar(b byte) bool {
500
- return (b == '-' || b == '_' ||
501
- ('0' <= b && b <= '9') ||
502
- ('a' <= b && b <= 'z') ||
503
- ('A' <= b && b <= 'Z'))
504
- }
505
-
506
- func isWhiteSpace(b byte) bool {
507
- switch b {
508
- case ' ', '\n', '\r', '\t':
509
- return true
510
- default:
511
- return false
512
- }
513
- }
514
-
515
- // parseIdent parses an unquoted proto identifier and returns size.
516
- // If allowNeg is true, it allows '-' to be the first character in the
517
- // identifier. This is used when parsing literal values like -infinity, etc.
518
- // Regular expression matches an identifier: `^[_a-zA-Z][_a-zA-Z0-9]*`
519
- func parseIdent(input []byte, allowNeg bool) int {
520
- var size int
521
-
522
- s := input
523
- if len(s) == 0 {
524
- return 0
525
- }
526
-
527
- if allowNeg && s[0] == '-' {
528
- s = s[1:]
529
- size++
530
- if len(s) == 0 {
531
- return 0
532
- }
533
- }
534
-
535
- switch {
536
- case s[0] == '_',
537
- 'a' <= s[0] && s[0] <= 'z',
538
- 'A' <= s[0] && s[0] <= 'Z':
539
- s = s[1:]
540
- size++
541
- default:
542
- return 0
543
- }
544
-
545
- for len(s) > 0 && (s[0] == '_' ||
546
- 'a' <= s[0] && s[0] <= 'z' ||
547
- 'A' <= s[0] && s[0] <= 'Z' ||
548
- '0' <= s[0] && s[0] <= '9') {
549
- s = s[1:]
550
- size++
551
- }
552
-
553
- if len(s) > 0 && !isDelim(s[0]) {
554
- return 0
555
- }
556
-
557
- return size
558
- }
559
-
560
- // parseScalar parses for a string, literal or number value.
561
- func (d *Decoder) parseScalar() (Token, error) {
562
- if d.in[0] == '"' || d.in[0] == '\'' {
563
- return d.parseStringValue()
564
- }
565
-
566
- if tok, ok := d.parseLiteralValue(); ok {
567
- return tok, nil
568
- }
569
-
570
- if tok, ok := d.parseNumberValue(); ok {
571
- return tok, nil
572
- }
573
-
574
- return Token{}, d.newSyntaxError("invalid scalar value: %s", errRegexp.Find(d.in))
575
- }
576
-
577
- // parseLiteralValue parses a literal value. A literal value is used for
578
- // bools, special floats and enums. This function simply identifies that the
579
- // field value is a literal.
580
- func (d *Decoder) parseLiteralValue() (Token, bool) {
581
- size := parseIdent(d.in, true)
582
- if size == 0 {
583
- return Token{}, false
584
- }
585
- return d.consumeToken(Scalar, size, literalValue), true
586
- }
587
-
588
- // consumeToken constructs a Token for given Kind from d.in and consumes given
589
- // size-length from it.
590
- func (d *Decoder) consumeToken(kind Kind, size int, attrs uint8) Token {
591
- // Important to compute raw and pos before consuming.
592
- tok := Token{
593
- kind: kind,
594
- attrs: attrs,
595
- pos: len(d.orig) - len(d.in),
596
- raw: d.in[:size],
597
- }
598
- d.consume(size)
599
- return tok
600
- }
601
-
602
- // newSyntaxError returns a syntax error with line and column information for
603
- // current position.
604
- func (d *Decoder) newSyntaxError(f string, x ...interface{}) error {
605
- e := errors.New(f, x...)
606
- line, column := d.Position(len(d.orig) - len(d.in))
607
- return errors.New("syntax error (line %d:%d): %v", line, column, e)
608
- }
609
-
610
- // Position returns line and column number of given index of the original input.
611
- // It will panic if index is out of range.
612
- func (d *Decoder) Position(idx int) (line int, column int) {
613
- b := d.orig[:idx]
614
- line = bytes.Count(b, []byte("\n")) + 1
615
- if i := bytes.LastIndexByte(b, '\n'); i >= 0 {
616
- b = b[i+1:]
617
- }
618
- column = utf8.RuneCount(b) + 1 // ignore multi-rune characters
619
- return line, column
620
- }
621
-
622
- func (d *Decoder) tryConsumeChar(c byte) bool {
623
- if len(d.in) > 0 && d.in[0] == c {
624
- d.consume(1)
625
- return true
626
- }
627
- return false
628
- }
629
-
630
- // consume consumes n bytes of input and any subsequent whitespace or comments.
631
- func (d *Decoder) consume(n int) {
632
- d.in = consume(d.in, n)
633
- return
634
- }
635
-
636
- // consume consumes n bytes of input and any subsequent whitespace or comments.
637
- func consume(b []byte, n int) []byte {
638
- b = b[n:]
639
- for len(b) > 0 {
640
- switch b[0] {
641
- case ' ', '\n', '\r', '\t':
642
- b = b[1:]
643
- case '#':
644
- if i := bytes.IndexByte(b, '\n'); i >= 0 {
645
- b = b[i+len("\n"):]
646
- } else {
647
- b = nil
648
- }
649
- default:
650
- return b
651
- }
652
- }
653
- return b
654
- }
655
-
656
- // Any sequence that looks like a non-delimiter (for error reporting).
657
- var errRegexp = regexp.MustCompile(`^([-+._a-zA-Z0-9\/]+|.)`)
658
-
659
- // isDelim returns true if given byte is a delimiter character.
660
- func isDelim(c byte) bool {
661
- return !(c == '-' || c == '+' || c == '.' || c == '_' ||
662
- ('a' <= c && c <= 'z') ||
663
- ('A' <= c && c <= 'Z') ||
664
- ('0' <= c && c <= '9'))
665
- }