planetscale 0.3.1 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (368) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +9 -1
  3. data/.github/workflows/gem-push.yml +9 -2
  4. data/.licenses/go/github.com/matoous/go-nanoid/v2.dep.yml +34 -0
  5. data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +1 -1
  6. data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +1 -1
  7. data/.licenses/go/go.uber.org/zap/buffer.dep.yml +1 -1
  8. data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +1 -1
  9. data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +1 -1
  10. data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +1 -1
  11. data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +1 -1
  12. data/.licenses/go/go.uber.org/zap.dep.yml +1 -1
  13. data/README.md +2 -0
  14. data/controller.go +21 -36
  15. data/go.mod +4 -3
  16. data/go.sum +32 -18
  17. data/lib/planetscale/version.rb +1 -1
  18. data/lib/planetscale.rb +2 -3
  19. data/planetscale.gemspec +1 -1
  20. data/proxy/planetscale-darwin.h +1 -1
  21. data/proxy/planetscale-darwin.so +0 -0
  22. data/proxy/planetscale-linux.h +1 -1
  23. data/proxy/planetscale-linux.so +0 -0
  24. data/proxy.go +1 -5
  25. metadata +3 -345
  26. data/vendor/github.com/armon/circbuf/.gitignore +0 -22
  27. data/vendor/github.com/armon/circbuf/LICENSE +0 -20
  28. data/vendor/github.com/armon/circbuf/README.md +0 -28
  29. data/vendor/github.com/armon/circbuf/circbuf.go +0 -92
  30. data/vendor/github.com/armon/circbuf/go.mod +0 -1
  31. data/vendor/github.com/golang/protobuf/AUTHORS +0 -3
  32. data/vendor/github.com/golang/protobuf/CONTRIBUTORS +0 -3
  33. data/vendor/github.com/golang/protobuf/LICENSE +0 -28
  34. data/vendor/github.com/golang/protobuf/proto/buffer.go +0 -324
  35. data/vendor/github.com/golang/protobuf/proto/defaults.go +0 -63
  36. data/vendor/github.com/golang/protobuf/proto/deprecated.go +0 -113
  37. data/vendor/github.com/golang/protobuf/proto/discard.go +0 -58
  38. data/vendor/github.com/golang/protobuf/proto/extensions.go +0 -356
  39. data/vendor/github.com/golang/protobuf/proto/properties.go +0 -306
  40. data/vendor/github.com/golang/protobuf/proto/proto.go +0 -167
  41. data/vendor/github.com/golang/protobuf/proto/registry.go +0 -317
  42. data/vendor/github.com/golang/protobuf/proto/text_decode.go +0 -801
  43. data/vendor/github.com/golang/protobuf/proto/text_encode.go +0 -560
  44. data/vendor/github.com/golang/protobuf/proto/wire.go +0 -78
  45. data/vendor/github.com/golang/protobuf/proto/wrappers.go +0 -34
  46. data/vendor/github.com/gorilla/mux/AUTHORS +0 -8
  47. data/vendor/github.com/gorilla/mux/LICENSE +0 -27
  48. data/vendor/github.com/gorilla/mux/README.md +0 -805
  49. data/vendor/github.com/gorilla/mux/doc.go +0 -306
  50. data/vendor/github.com/gorilla/mux/go.mod +0 -3
  51. data/vendor/github.com/gorilla/mux/middleware.go +0 -74
  52. data/vendor/github.com/gorilla/mux/mux.go +0 -606
  53. data/vendor/github.com/gorilla/mux/regexp.go +0 -388
  54. data/vendor/github.com/gorilla/mux/route.go +0 -736
  55. data/vendor/github.com/gorilla/mux/test_helpers.go +0 -19
  56. data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +0 -363
  57. data/vendor/github.com/hashicorp/go-cleanhttp/README.md +0 -30
  58. data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +0 -58
  59. data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +0 -20
  60. data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +0 -3
  61. data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +0 -48
  62. data/vendor/github.com/mitchellh/go-homedir/LICENSE +0 -21
  63. data/vendor/github.com/mitchellh/go-homedir/README.md +0 -14
  64. data/vendor/github.com/mitchellh/go-homedir/go.mod +0 -1
  65. data/vendor/github.com/mitchellh/go-homedir/homedir.go +0 -167
  66. data/vendor/github.com/pkg/errors/.gitignore +0 -24
  67. data/vendor/github.com/pkg/errors/.travis.yml +0 -10
  68. data/vendor/github.com/pkg/errors/LICENSE +0 -23
  69. data/vendor/github.com/pkg/errors/Makefile +0 -44
  70. data/vendor/github.com/pkg/errors/README.md +0 -59
  71. data/vendor/github.com/pkg/errors/appveyor.yml +0 -32
  72. data/vendor/github.com/pkg/errors/errors.go +0 -288
  73. data/vendor/github.com/pkg/errors/go113.go +0 -38
  74. data/vendor/github.com/pkg/errors/stack.go +0 -177
  75. data/vendor/github.com/planetscale/planetscale-go/LICENSE +0 -202
  76. data/vendor/github.com/planetscale/planetscale-go/planetscale/audit_logs.go +0 -136
  77. data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +0 -139
  78. data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +0 -252
  79. data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +0 -166
  80. data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +0 -312
  81. data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +0 -133
  82. data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +0 -368
  83. data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +0 -103
  84. data/vendor/github.com/planetscale/planetscale-go/planetscale/regions.go +0 -52
  85. data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +0 -163
  86. data/vendor/github.com/planetscale/sql-proxy/LICENSE +0 -202
  87. data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +0 -476
  88. data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +0 -73
  89. data/vendor/go.uber.org/atomic/.codecov.yml +0 -19
  90. data/vendor/go.uber.org/atomic/.gitignore +0 -12
  91. data/vendor/go.uber.org/atomic/.travis.yml +0 -27
  92. data/vendor/go.uber.org/atomic/CHANGELOG.md +0 -76
  93. data/vendor/go.uber.org/atomic/LICENSE.txt +0 -19
  94. data/vendor/go.uber.org/atomic/Makefile +0 -78
  95. data/vendor/go.uber.org/atomic/README.md +0 -63
  96. data/vendor/go.uber.org/atomic/bool.go +0 -81
  97. data/vendor/go.uber.org/atomic/bool_ext.go +0 -53
  98. data/vendor/go.uber.org/atomic/doc.go +0 -23
  99. data/vendor/go.uber.org/atomic/duration.go +0 -82
  100. data/vendor/go.uber.org/atomic/duration_ext.go +0 -40
  101. data/vendor/go.uber.org/atomic/error.go +0 -51
  102. data/vendor/go.uber.org/atomic/error_ext.go +0 -39
  103. data/vendor/go.uber.org/atomic/float64.go +0 -76
  104. data/vendor/go.uber.org/atomic/float64_ext.go +0 -47
  105. data/vendor/go.uber.org/atomic/gen.go +0 -26
  106. data/vendor/go.uber.org/atomic/go.mod +0 -8
  107. data/vendor/go.uber.org/atomic/go.sum +0 -9
  108. data/vendor/go.uber.org/atomic/int32.go +0 -102
  109. data/vendor/go.uber.org/atomic/int64.go +0 -102
  110. data/vendor/go.uber.org/atomic/nocmp.go +0 -35
  111. data/vendor/go.uber.org/atomic/string.go +0 -54
  112. data/vendor/go.uber.org/atomic/string_ext.go +0 -43
  113. data/vendor/go.uber.org/atomic/uint32.go +0 -102
  114. data/vendor/go.uber.org/atomic/uint64.go +0 -102
  115. data/vendor/go.uber.org/atomic/value.go +0 -31
  116. data/vendor/go.uber.org/multierr/.codecov.yml +0 -15
  117. data/vendor/go.uber.org/multierr/.gitignore +0 -4
  118. data/vendor/go.uber.org/multierr/.travis.yml +0 -23
  119. data/vendor/go.uber.org/multierr/CHANGELOG.md +0 -60
  120. data/vendor/go.uber.org/multierr/LICENSE.txt +0 -19
  121. data/vendor/go.uber.org/multierr/Makefile +0 -42
  122. data/vendor/go.uber.org/multierr/README.md +0 -23
  123. data/vendor/go.uber.org/multierr/error.go +0 -449
  124. data/vendor/go.uber.org/multierr/glide.yaml +0 -8
  125. data/vendor/go.uber.org/multierr/go.mod +0 -8
  126. data/vendor/go.uber.org/multierr/go.sum +0 -11
  127. data/vendor/go.uber.org/multierr/go113.go +0 -52
  128. data/vendor/go.uber.org/zap/.codecov.yml +0 -17
  129. data/vendor/go.uber.org/zap/.gitignore +0 -32
  130. data/vendor/go.uber.org/zap/.readme.tmpl +0 -109
  131. data/vendor/go.uber.org/zap/CHANGELOG.md +0 -492
  132. data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +0 -75
  133. data/vendor/go.uber.org/zap/CONTRIBUTING.md +0 -75
  134. data/vendor/go.uber.org/zap/FAQ.md +0 -164
  135. data/vendor/go.uber.org/zap/LICENSE.txt +0 -19
  136. data/vendor/go.uber.org/zap/Makefile +0 -73
  137. data/vendor/go.uber.org/zap/README.md +0 -134
  138. data/vendor/go.uber.org/zap/array.go +0 -320
  139. data/vendor/go.uber.org/zap/buffer/buffer.go +0 -141
  140. data/vendor/go.uber.org/zap/buffer/pool.go +0 -49
  141. data/vendor/go.uber.org/zap/checklicense.sh +0 -17
  142. data/vendor/go.uber.org/zap/config.go +0 -264
  143. data/vendor/go.uber.org/zap/doc.go +0 -113
  144. data/vendor/go.uber.org/zap/encoder.go +0 -79
  145. data/vendor/go.uber.org/zap/error.go +0 -80
  146. data/vendor/go.uber.org/zap/field.go +0 -549
  147. data/vendor/go.uber.org/zap/flag.go +0 -39
  148. data/vendor/go.uber.org/zap/glide.yaml +0 -34
  149. data/vendor/go.uber.org/zap/global.go +0 -168
  150. data/vendor/go.uber.org/zap/global_go112.go +0 -26
  151. data/vendor/go.uber.org/zap/global_prego112.go +0 -26
  152. data/vendor/go.uber.org/zap/go.mod +0 -14
  153. data/vendor/go.uber.org/zap/go.sum +0 -54
  154. data/vendor/go.uber.org/zap/http_handler.go +0 -132
  155. data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +0 -31
  156. data/vendor/go.uber.org/zap/internal/color/color.go +0 -44
  157. data/vendor/go.uber.org/zap/internal/exit/exit.go +0 -64
  158. data/vendor/go.uber.org/zap/level.go +0 -132
  159. data/vendor/go.uber.org/zap/logger.go +0 -348
  160. data/vendor/go.uber.org/zap/options.go +0 -148
  161. data/vendor/go.uber.org/zap/sink.go +0 -161
  162. data/vendor/go.uber.org/zap/stacktrace.go +0 -85
  163. data/vendor/go.uber.org/zap/sugar.go +0 -315
  164. data/vendor/go.uber.org/zap/time.go +0 -27
  165. data/vendor/go.uber.org/zap/writer.go +0 -99
  166. data/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go +0 -188
  167. data/vendor/go.uber.org/zap/zapcore/clock.go +0 -50
  168. data/vendor/go.uber.org/zap/zapcore/console_encoder.go +0 -161
  169. data/vendor/go.uber.org/zap/zapcore/core.go +0 -113
  170. data/vendor/go.uber.org/zap/zapcore/doc.go +0 -24
  171. data/vendor/go.uber.org/zap/zapcore/encoder.go +0 -443
  172. data/vendor/go.uber.org/zap/zapcore/entry.go +0 -264
  173. data/vendor/go.uber.org/zap/zapcore/error.go +0 -132
  174. data/vendor/go.uber.org/zap/zapcore/field.go +0 -233
  175. data/vendor/go.uber.org/zap/zapcore/hook.go +0 -68
  176. data/vendor/go.uber.org/zap/zapcore/increase_level.go +0 -66
  177. data/vendor/go.uber.org/zap/zapcore/json_encoder.go +0 -534
  178. data/vendor/go.uber.org/zap/zapcore/level.go +0 -175
  179. data/vendor/go.uber.org/zap/zapcore/level_strings.go +0 -46
  180. data/vendor/go.uber.org/zap/zapcore/marshaler.go +0 -61
  181. data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +0 -179
  182. data/vendor/go.uber.org/zap/zapcore/sampler.go +0 -208
  183. data/vendor/go.uber.org/zap/zapcore/tee.go +0 -81
  184. data/vendor/go.uber.org/zap/zapcore/write_syncer.go +0 -122
  185. data/vendor/golang.org/x/net/AUTHORS +0 -3
  186. data/vendor/golang.org/x/net/CONTRIBUTORS +0 -3
  187. data/vendor/golang.org/x/net/LICENSE +0 -27
  188. data/vendor/golang.org/x/net/PATENTS +0 -22
  189. data/vendor/golang.org/x/net/context/context.go +0 -56
  190. data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +0 -71
  191. data/vendor/golang.org/x/net/context/go17.go +0 -73
  192. data/vendor/golang.org/x/net/context/go19.go +0 -21
  193. data/vendor/golang.org/x/net/context/pre_go17.go +0 -301
  194. data/vendor/golang.org/x/net/context/pre_go19.go +0 -110
  195. data/vendor/golang.org/x/oauth2/.travis.yml +0 -13
  196. data/vendor/golang.org/x/oauth2/AUTHORS +0 -3
  197. data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +0 -26
  198. data/vendor/golang.org/x/oauth2/CONTRIBUTORS +0 -3
  199. data/vendor/golang.org/x/oauth2/LICENSE +0 -27
  200. data/vendor/golang.org/x/oauth2/README.md +0 -36
  201. data/vendor/golang.org/x/oauth2/go.mod +0 -9
  202. data/vendor/golang.org/x/oauth2/go.sum +0 -361
  203. data/vendor/golang.org/x/oauth2/internal/client_appengine.go +0 -14
  204. data/vendor/golang.org/x/oauth2/internal/doc.go +0 -6
  205. data/vendor/golang.org/x/oauth2/internal/oauth2.go +0 -37
  206. data/vendor/golang.org/x/oauth2/internal/token.go +0 -294
  207. data/vendor/golang.org/x/oauth2/internal/transport.go +0 -33
  208. data/vendor/golang.org/x/oauth2/oauth2.go +0 -381
  209. data/vendor/golang.org/x/oauth2/token.go +0 -178
  210. data/vendor/golang.org/x/oauth2/transport.go +0 -89
  211. data/vendor/google.golang.org/appengine/LICENSE +0 -202
  212. data/vendor/google.golang.org/appengine/internal/api.go +0 -678
  213. data/vendor/google.golang.org/appengine/internal/api_classic.go +0 -169
  214. data/vendor/google.golang.org/appengine/internal/api_common.go +0 -123
  215. data/vendor/google.golang.org/appengine/internal/app_id.go +0 -28
  216. data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +0 -308
  217. data/vendor/google.golang.org/appengine/internal/base/api_base.proto +0 -33
  218. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +0 -4367
  219. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +0 -551
  220. data/vendor/google.golang.org/appengine/internal/identity.go +0 -55
  221. data/vendor/google.golang.org/appengine/internal/identity_classic.go +0 -61
  222. data/vendor/google.golang.org/appengine/internal/identity_flex.go +0 -11
  223. data/vendor/google.golang.org/appengine/internal/identity_vm.go +0 -134
  224. data/vendor/google.golang.org/appengine/internal/internal.go +0 -110
  225. data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +0 -1313
  226. data/vendor/google.golang.org/appengine/internal/log/log_service.proto +0 -150
  227. data/vendor/google.golang.org/appengine/internal/main.go +0 -16
  228. data/vendor/google.golang.org/appengine/internal/main_common.go +0 -7
  229. data/vendor/google.golang.org/appengine/internal/main_vm.go +0 -69
  230. data/vendor/google.golang.org/appengine/internal/metadata.go +0 -60
  231. data/vendor/google.golang.org/appengine/internal/net.go +0 -56
  232. data/vendor/google.golang.org/appengine/internal/regen.sh +0 -40
  233. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +0 -361
  234. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +0 -44
  235. data/vendor/google.golang.org/appengine/internal/transaction.go +0 -115
  236. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +0 -527
  237. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +0 -64
  238. data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +0 -210
  239. data/vendor/google.golang.org/protobuf/AUTHORS +0 -3
  240. data/vendor/google.golang.org/protobuf/CONTRIBUTORS +0 -3
  241. data/vendor/google.golang.org/protobuf/LICENSE +0 -27
  242. data/vendor/google.golang.org/protobuf/PATENTS +0 -22
  243. data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +0 -773
  244. data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +0 -7
  245. data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +0 -371
  246. data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +0 -538
  247. data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +0 -318
  248. data/vendor/google.golang.org/protobuf/internal/descopts/options.go +0 -29
  249. data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +0 -69
  250. data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +0 -213
  251. data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +0 -241
  252. data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +0 -207
  253. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +0 -665
  254. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +0 -190
  255. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +0 -161
  256. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +0 -373
  257. data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +0 -29
  258. data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +0 -265
  259. data/vendor/google.golang.org/protobuf/internal/errors/errors.go +0 -89
  260. data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +0 -39
  261. data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +0 -12
  262. data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +0 -158
  263. data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +0 -631
  264. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +0 -471
  265. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +0 -704
  266. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +0 -450
  267. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +0 -356
  268. data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +0 -107
  269. data/vendor/google.golang.org/protobuf/internal/filetype/build.go +0 -297
  270. data/vendor/google.golang.org/protobuf/internal/flags/flags.go +0 -24
  271. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +0 -9
  272. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +0 -9
  273. data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +0 -34
  274. data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +0 -106
  275. data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +0 -829
  276. data/vendor/google.golang.org/protobuf/internal/genid/doc.go +0 -11
  277. data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +0 -34
  278. data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +0 -19
  279. data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +0 -31
  280. data/vendor/google.golang.org/protobuf/internal/genid/goname.go +0 -25
  281. data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +0 -16
  282. data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +0 -31
  283. data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +0 -116
  284. data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +0 -34
  285. data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +0 -184
  286. data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +0 -13
  287. data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +0 -175
  288. data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +0 -177
  289. data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +0 -141
  290. data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +0 -223
  291. data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +0 -830
  292. data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +0 -5637
  293. data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +0 -388
  294. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +0 -37
  295. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +0 -11
  296. data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +0 -217
  297. data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +0 -123
  298. data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +0 -209
  299. data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +0 -557
  300. data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +0 -17
  301. data/vendor/google.golang.org/protobuf/internal/impl/convert.go +0 -496
  302. data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +0 -141
  303. data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +0 -121
  304. data/vendor/google.golang.org/protobuf/internal/impl/decode.go +0 -276
  305. data/vendor/google.golang.org/protobuf/internal/impl/encode.go +0 -201
  306. data/vendor/google.golang.org/protobuf/internal/impl/enum.go +0 -21
  307. data/vendor/google.golang.org/protobuf/internal/impl/extension.go +0 -156
  308. data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +0 -219
  309. data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +0 -92
  310. data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +0 -176
  311. data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +0 -81
  312. data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +0 -558
  313. data/vendor/google.golang.org/protobuf/internal/impl/merge.go +0 -176
  314. data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +0 -209
  315. data/vendor/google.golang.org/protobuf/internal/impl/message.go +0 -276
  316. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +0 -465
  317. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +0 -543
  318. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +0 -249
  319. data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +0 -178
  320. data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +0 -174
  321. data/vendor/google.golang.org/protobuf/internal/impl/validate.go +0 -576
  322. data/vendor/google.golang.org/protobuf/internal/impl/weak.go +0 -74
  323. data/vendor/google.golang.org/protobuf/internal/order/order.go +0 -89
  324. data/vendor/google.golang.org/protobuf/internal/order/range.go +0 -115
  325. data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +0 -29
  326. data/vendor/google.golang.org/protobuf/internal/set/ints.go +0 -58
  327. data/vendor/google.golang.org/protobuf/internal/strs/strings.go +0 -196
  328. data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +0 -27
  329. data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +0 -94
  330. data/vendor/google.golang.org/protobuf/internal/version/version.go +0 -79
  331. data/vendor/google.golang.org/protobuf/proto/checkinit.go +0 -71
  332. data/vendor/google.golang.org/protobuf/proto/decode.go +0 -278
  333. data/vendor/google.golang.org/protobuf/proto/decode_gen.go +0 -603
  334. data/vendor/google.golang.org/protobuf/proto/doc.go +0 -94
  335. data/vendor/google.golang.org/protobuf/proto/encode.go +0 -319
  336. data/vendor/google.golang.org/protobuf/proto/encode_gen.go +0 -97
  337. data/vendor/google.golang.org/protobuf/proto/equal.go +0 -167
  338. data/vendor/google.golang.org/protobuf/proto/extension.go +0 -92
  339. data/vendor/google.golang.org/protobuf/proto/merge.go +0 -139
  340. data/vendor/google.golang.org/protobuf/proto/messageset.go +0 -93
  341. data/vendor/google.golang.org/protobuf/proto/proto.go +0 -43
  342. data/vendor/google.golang.org/protobuf/proto/proto_methods.go +0 -19
  343. data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +0 -19
  344. data/vendor/google.golang.org/protobuf/proto/reset.go +0 -43
  345. data/vendor/google.golang.org/protobuf/proto/size.go +0 -97
  346. data/vendor/google.golang.org/protobuf/proto/size_gen.go +0 -55
  347. data/vendor/google.golang.org/protobuf/proto/wrappers.go +0 -29
  348. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +0 -276
  349. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +0 -248
  350. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +0 -286
  351. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +0 -374
  352. data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +0 -252
  353. data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +0 -77
  354. data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +0 -504
  355. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +0 -128
  356. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +0 -461
  357. data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +0 -665
  358. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +0 -285
  359. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +0 -59
  360. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +0 -411
  361. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +0 -98
  362. data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +0 -869
  363. data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +0 -15
  364. data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +0 -167
  365. data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +0 -44
  366. data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +0 -56
  367. data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +0 -4039
  368. data/vendor/modules.txt +0 -79
@@ -1,3 +0,0 @@
1
- # This source code refers to The Go Authors for copyright purposes.
2
- # The master list of authors is in the main Go distribution,
3
- # visible at http://tip.golang.org/AUTHORS.
@@ -1,3 +0,0 @@
1
- # This source code was written by the Go contributors.
2
- # The master list of contributors is in the main Go distribution,
3
- # visible at http://tip.golang.org/CONTRIBUTORS.
@@ -1,27 +0,0 @@
1
- Copyright (c) 2009 The Go Authors. All rights reserved.
2
-
3
- Redistribution and use in source and binary forms, with or without
4
- modification, are permitted provided that the following conditions are
5
- met:
6
-
7
- * Redistributions of source code must retain the above copyright
8
- notice, this list of conditions and the following disclaimer.
9
- * Redistributions in binary form must reproduce the above
10
- copyright notice, this list of conditions and the following disclaimer
11
- in the documentation and/or other materials provided with the
12
- distribution.
13
- * Neither the name of Google Inc. nor the names of its
14
- contributors may be used to endorse or promote products derived from
15
- this software without specific prior written permission.
16
-
17
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,22 +0,0 @@
1
- Additional IP Rights Grant (Patents)
2
-
3
- "This implementation" means the copyrightable works distributed by
4
- Google as part of the Go project.
5
-
6
- Google hereby grants to You a perpetual, worldwide, non-exclusive,
7
- no-charge, royalty-free, irrevocable (except as stated in this section)
8
- patent license to make, have made, use, offer to sell, sell, import,
9
- transfer and otherwise run, modify and propagate the contents of this
10
- implementation of Go, where such license applies only to those patent
11
- claims, both currently owned or controlled by Google and acquired in
12
- the future, licensable by Google that are necessarily infringed by this
13
- implementation of Go. This grant does not include claims that would be
14
- infringed only as a consequence of further modification of this
15
- implementation. If you or your agent or exclusive licensee institute or
16
- order or agree to the institution of patent litigation against any
17
- entity (including a cross-claim or counterclaim in a lawsuit) alleging
18
- that this implementation of Go or any code incorporated within this
19
- implementation of Go constitutes direct or contributory patent
20
- infringement, or inducement of patent infringement, then any patent
21
- rights granted to you under this License for this implementation of Go
22
- shall terminate as of the date such litigation is filed.
@@ -1,56 +0,0 @@
1
- // Copyright 2014 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 context defines the Context type, which carries deadlines,
6
- // cancelation signals, and other request-scoped values across API boundaries
7
- // and between processes.
8
- // As of Go 1.7 this package is available in the standard library under the
9
- // name context. https://golang.org/pkg/context.
10
- //
11
- // Incoming requests to a server should create a Context, and outgoing calls to
12
- // servers should accept a Context. The chain of function calls between must
13
- // propagate the Context, optionally replacing it with a modified copy created
14
- // using WithDeadline, WithTimeout, WithCancel, or WithValue.
15
- //
16
- // Programs that use Contexts should follow these rules to keep interfaces
17
- // consistent across packages and enable static analysis tools to check context
18
- // propagation:
19
- //
20
- // Do not store Contexts inside a struct type; instead, pass a Context
21
- // explicitly to each function that needs it. The Context should be the first
22
- // parameter, typically named ctx:
23
- //
24
- // func DoSomething(ctx context.Context, arg Arg) error {
25
- // // ... use ctx ...
26
- // }
27
- //
28
- // Do not pass a nil Context, even if a function permits it. Pass context.TODO
29
- // if you are unsure about which Context to use.
30
- //
31
- // Use context Values only for request-scoped data that transits processes and
32
- // APIs, not for passing optional parameters to functions.
33
- //
34
- // The same Context may be passed to functions running in different goroutines;
35
- // Contexts are safe for simultaneous use by multiple goroutines.
36
- //
37
- // See http://blog.golang.org/context for example code for a server that uses
38
- // Contexts.
39
- package context // import "golang.org/x/net/context"
40
-
41
- // Background returns a non-nil, empty Context. It is never canceled, has no
42
- // values, and has no deadline. It is typically used by the main function,
43
- // initialization, and tests, and as the top-level Context for incoming
44
- // requests.
45
- func Background() Context {
46
- return background
47
- }
48
-
49
- // TODO returns a non-nil, empty Context. Code should use context.TODO when
50
- // it's unclear which Context to use or it is not yet available (because the
51
- // surrounding function has not yet been extended to accept a Context
52
- // parameter). TODO is recognized by static analysis tools that determine
53
- // whether Contexts are propagated correctly in a program.
54
- func TODO() Context {
55
- return todo
56
- }
@@ -1,71 +0,0 @@
1
- // Copyright 2016 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 ctxhttp provides helper functions for performing context-aware HTTP requests.
6
- package ctxhttp // import "golang.org/x/net/context/ctxhttp"
7
-
8
- import (
9
- "context"
10
- "io"
11
- "net/http"
12
- "net/url"
13
- "strings"
14
- )
15
-
16
- // Do sends an HTTP request with the provided http.Client and returns
17
- // an HTTP response.
18
- //
19
- // If the client is nil, http.DefaultClient is used.
20
- //
21
- // The provided ctx must be non-nil. If it is canceled or times out,
22
- // ctx.Err() will be returned.
23
- func Do(ctx context.Context, client *http.Client, req *http.Request) (*http.Response, error) {
24
- if client == nil {
25
- client = http.DefaultClient
26
- }
27
- resp, err := client.Do(req.WithContext(ctx))
28
- // If we got an error, and the context has been canceled,
29
- // the context's error is probably more useful.
30
- if err != nil {
31
- select {
32
- case <-ctx.Done():
33
- err = ctx.Err()
34
- default:
35
- }
36
- }
37
- return resp, err
38
- }
39
-
40
- // Get issues a GET request via the Do function.
41
- func Get(ctx context.Context, client *http.Client, url string) (*http.Response, error) {
42
- req, err := http.NewRequest("GET", url, nil)
43
- if err != nil {
44
- return nil, err
45
- }
46
- return Do(ctx, client, req)
47
- }
48
-
49
- // Head issues a HEAD request via the Do function.
50
- func Head(ctx context.Context, client *http.Client, url string) (*http.Response, error) {
51
- req, err := http.NewRequest("HEAD", url, nil)
52
- if err != nil {
53
- return nil, err
54
- }
55
- return Do(ctx, client, req)
56
- }
57
-
58
- // Post issues a POST request via the Do function.
59
- func Post(ctx context.Context, client *http.Client, url string, bodyType string, body io.Reader) (*http.Response, error) {
60
- req, err := http.NewRequest("POST", url, body)
61
- if err != nil {
62
- return nil, err
63
- }
64
- req.Header.Set("Content-Type", bodyType)
65
- return Do(ctx, client, req)
66
- }
67
-
68
- // PostForm issues a POST request via the Do function.
69
- func PostForm(ctx context.Context, client *http.Client, url string, data url.Values) (*http.Response, error) {
70
- return Post(ctx, client, url, "application/x-www-form-urlencoded", strings.NewReader(data.Encode()))
71
- }
@@ -1,73 +0,0 @@
1
- // Copyright 2016 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
- //go:build go1.7
6
- // +build go1.7
7
-
8
- package context
9
-
10
- import (
11
- "context" // standard library's context, as of Go 1.7
12
- "time"
13
- )
14
-
15
- var (
16
- todo = context.TODO()
17
- background = context.Background()
18
- )
19
-
20
- // Canceled is the error returned by Context.Err when the context is canceled.
21
- var Canceled = context.Canceled
22
-
23
- // DeadlineExceeded is the error returned by Context.Err when the context's
24
- // deadline passes.
25
- var DeadlineExceeded = context.DeadlineExceeded
26
-
27
- // WithCancel returns a copy of parent with a new Done channel. The returned
28
- // context's Done channel is closed when the returned cancel function is called
29
- // or when the parent context's Done channel is closed, whichever happens first.
30
- //
31
- // Canceling this context releases resources associated with it, so code should
32
- // call cancel as soon as the operations running in this Context complete.
33
- func WithCancel(parent Context) (ctx Context, cancel CancelFunc) {
34
- ctx, f := context.WithCancel(parent)
35
- return ctx, CancelFunc(f)
36
- }
37
-
38
- // WithDeadline returns a copy of the parent context with the deadline adjusted
39
- // to be no later than d. If the parent's deadline is already earlier than d,
40
- // WithDeadline(parent, d) is semantically equivalent to parent. The returned
41
- // context's Done channel is closed when the deadline expires, when the returned
42
- // cancel function is called, or when the parent context's Done channel is
43
- // closed, whichever happens first.
44
- //
45
- // Canceling this context releases resources associated with it, so code should
46
- // call cancel as soon as the operations running in this Context complete.
47
- func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) {
48
- ctx, f := context.WithDeadline(parent, deadline)
49
- return ctx, CancelFunc(f)
50
- }
51
-
52
- // WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)).
53
- //
54
- // Canceling this context releases resources associated with it, so code should
55
- // call cancel as soon as the operations running in this Context complete:
56
- //
57
- // func slowOperationWithTimeout(ctx context.Context) (Result, error) {
58
- // ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond)
59
- // defer cancel() // releases resources if slowOperation completes before timeout elapses
60
- // return slowOperation(ctx)
61
- // }
62
- func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) {
63
- return WithDeadline(parent, time.Now().Add(timeout))
64
- }
65
-
66
- // WithValue returns a copy of parent in which the value associated with key is
67
- // val.
68
- //
69
- // Use context Values only for request-scoped data that transits processes and
70
- // APIs, not for passing optional parameters to functions.
71
- func WithValue(parent Context, key interface{}, val interface{}) Context {
72
- return context.WithValue(parent, key, val)
73
- }
@@ -1,21 +0,0 @@
1
- // Copyright 2017 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
- //go:build go1.9
6
- // +build go1.9
7
-
8
- package context
9
-
10
- import "context" // standard library's context, as of Go 1.7
11
-
12
- // A Context carries a deadline, a cancelation signal, and other values across
13
- // API boundaries.
14
- //
15
- // Context's methods may be called by multiple goroutines simultaneously.
16
- type Context = context.Context
17
-
18
- // A CancelFunc tells an operation to abandon its work.
19
- // A CancelFunc does not wait for the work to stop.
20
- // After the first call, subsequent calls to a CancelFunc do nothing.
21
- type CancelFunc = context.CancelFunc
@@ -1,301 +0,0 @@
1
- // Copyright 2014 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
- //go:build !go1.7
6
- // +build !go1.7
7
-
8
- package context
9
-
10
- import (
11
- "errors"
12
- "fmt"
13
- "sync"
14
- "time"
15
- )
16
-
17
- // An emptyCtx is never canceled, has no values, and has no deadline. It is not
18
- // struct{}, since vars of this type must have distinct addresses.
19
- type emptyCtx int
20
-
21
- func (*emptyCtx) Deadline() (deadline time.Time, ok bool) {
22
- return
23
- }
24
-
25
- func (*emptyCtx) Done() <-chan struct{} {
26
- return nil
27
- }
28
-
29
- func (*emptyCtx) Err() error {
30
- return nil
31
- }
32
-
33
- func (*emptyCtx) Value(key interface{}) interface{} {
34
- return nil
35
- }
36
-
37
- func (e *emptyCtx) String() string {
38
- switch e {
39
- case background:
40
- return "context.Background"
41
- case todo:
42
- return "context.TODO"
43
- }
44
- return "unknown empty Context"
45
- }
46
-
47
- var (
48
- background = new(emptyCtx)
49
- todo = new(emptyCtx)
50
- )
51
-
52
- // Canceled is the error returned by Context.Err when the context is canceled.
53
- var Canceled = errors.New("context canceled")
54
-
55
- // DeadlineExceeded is the error returned by Context.Err when the context's
56
- // deadline passes.
57
- var DeadlineExceeded = errors.New("context deadline exceeded")
58
-
59
- // WithCancel returns a copy of parent with a new Done channel. The returned
60
- // context's Done channel is closed when the returned cancel function is called
61
- // or when the parent context's Done channel is closed, whichever happens first.
62
- //
63
- // Canceling this context releases resources associated with it, so code should
64
- // call cancel as soon as the operations running in this Context complete.
65
- func WithCancel(parent Context) (ctx Context, cancel CancelFunc) {
66
- c := newCancelCtx(parent)
67
- propagateCancel(parent, c)
68
- return c, func() { c.cancel(true, Canceled) }
69
- }
70
-
71
- // newCancelCtx returns an initialized cancelCtx.
72
- func newCancelCtx(parent Context) *cancelCtx {
73
- return &cancelCtx{
74
- Context: parent,
75
- done: make(chan struct{}),
76
- }
77
- }
78
-
79
- // propagateCancel arranges for child to be canceled when parent is.
80
- func propagateCancel(parent Context, child canceler) {
81
- if parent.Done() == nil {
82
- return // parent is never canceled
83
- }
84
- if p, ok := parentCancelCtx(parent); ok {
85
- p.mu.Lock()
86
- if p.err != nil {
87
- // parent has already been canceled
88
- child.cancel(false, p.err)
89
- } else {
90
- if p.children == nil {
91
- p.children = make(map[canceler]bool)
92
- }
93
- p.children[child] = true
94
- }
95
- p.mu.Unlock()
96
- } else {
97
- go func() {
98
- select {
99
- case <-parent.Done():
100
- child.cancel(false, parent.Err())
101
- case <-child.Done():
102
- }
103
- }()
104
- }
105
- }
106
-
107
- // parentCancelCtx follows a chain of parent references until it finds a
108
- // *cancelCtx. This function understands how each of the concrete types in this
109
- // package represents its parent.
110
- func parentCancelCtx(parent Context) (*cancelCtx, bool) {
111
- for {
112
- switch c := parent.(type) {
113
- case *cancelCtx:
114
- return c, true
115
- case *timerCtx:
116
- return c.cancelCtx, true
117
- case *valueCtx:
118
- parent = c.Context
119
- default:
120
- return nil, false
121
- }
122
- }
123
- }
124
-
125
- // removeChild removes a context from its parent.
126
- func removeChild(parent Context, child canceler) {
127
- p, ok := parentCancelCtx(parent)
128
- if !ok {
129
- return
130
- }
131
- p.mu.Lock()
132
- if p.children != nil {
133
- delete(p.children, child)
134
- }
135
- p.mu.Unlock()
136
- }
137
-
138
- // A canceler is a context type that can be canceled directly. The
139
- // implementations are *cancelCtx and *timerCtx.
140
- type canceler interface {
141
- cancel(removeFromParent bool, err error)
142
- Done() <-chan struct{}
143
- }
144
-
145
- // A cancelCtx can be canceled. When canceled, it also cancels any children
146
- // that implement canceler.
147
- type cancelCtx struct {
148
- Context
149
-
150
- done chan struct{} // closed by the first cancel call.
151
-
152
- mu sync.Mutex
153
- children map[canceler]bool // set to nil by the first cancel call
154
- err error // set to non-nil by the first cancel call
155
- }
156
-
157
- func (c *cancelCtx) Done() <-chan struct{} {
158
- return c.done
159
- }
160
-
161
- func (c *cancelCtx) Err() error {
162
- c.mu.Lock()
163
- defer c.mu.Unlock()
164
- return c.err
165
- }
166
-
167
- func (c *cancelCtx) String() string {
168
- return fmt.Sprintf("%v.WithCancel", c.Context)
169
- }
170
-
171
- // cancel closes c.done, cancels each of c's children, and, if
172
- // removeFromParent is true, removes c from its parent's children.
173
- func (c *cancelCtx) cancel(removeFromParent bool, err error) {
174
- if err == nil {
175
- panic("context: internal error: missing cancel error")
176
- }
177
- c.mu.Lock()
178
- if c.err != nil {
179
- c.mu.Unlock()
180
- return // already canceled
181
- }
182
- c.err = err
183
- close(c.done)
184
- for child := range c.children {
185
- // NOTE: acquiring the child's lock while holding parent's lock.
186
- child.cancel(false, err)
187
- }
188
- c.children = nil
189
- c.mu.Unlock()
190
-
191
- if removeFromParent {
192
- removeChild(c.Context, c)
193
- }
194
- }
195
-
196
- // WithDeadline returns a copy of the parent context with the deadline adjusted
197
- // to be no later than d. If the parent's deadline is already earlier than d,
198
- // WithDeadline(parent, d) is semantically equivalent to parent. The returned
199
- // context's Done channel is closed when the deadline expires, when the returned
200
- // cancel function is called, or when the parent context's Done channel is
201
- // closed, whichever happens first.
202
- //
203
- // Canceling this context releases resources associated with it, so code should
204
- // call cancel as soon as the operations running in this Context complete.
205
- func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) {
206
- if cur, ok := parent.Deadline(); ok && cur.Before(deadline) {
207
- // The current deadline is already sooner than the new one.
208
- return WithCancel(parent)
209
- }
210
- c := &timerCtx{
211
- cancelCtx: newCancelCtx(parent),
212
- deadline: deadline,
213
- }
214
- propagateCancel(parent, c)
215
- d := deadline.Sub(time.Now())
216
- if d <= 0 {
217
- c.cancel(true, DeadlineExceeded) // deadline has already passed
218
- return c, func() { c.cancel(true, Canceled) }
219
- }
220
- c.mu.Lock()
221
- defer c.mu.Unlock()
222
- if c.err == nil {
223
- c.timer = time.AfterFunc(d, func() {
224
- c.cancel(true, DeadlineExceeded)
225
- })
226
- }
227
- return c, func() { c.cancel(true, Canceled) }
228
- }
229
-
230
- // A timerCtx carries a timer and a deadline. It embeds a cancelCtx to
231
- // implement Done and Err. It implements cancel by stopping its timer then
232
- // delegating to cancelCtx.cancel.
233
- type timerCtx struct {
234
- *cancelCtx
235
- timer *time.Timer // Under cancelCtx.mu.
236
-
237
- deadline time.Time
238
- }
239
-
240
- func (c *timerCtx) Deadline() (deadline time.Time, ok bool) {
241
- return c.deadline, true
242
- }
243
-
244
- func (c *timerCtx) String() string {
245
- return fmt.Sprintf("%v.WithDeadline(%s [%s])", c.cancelCtx.Context, c.deadline, c.deadline.Sub(time.Now()))
246
- }
247
-
248
- func (c *timerCtx) cancel(removeFromParent bool, err error) {
249
- c.cancelCtx.cancel(false, err)
250
- if removeFromParent {
251
- // Remove this timerCtx from its parent cancelCtx's children.
252
- removeChild(c.cancelCtx.Context, c)
253
- }
254
- c.mu.Lock()
255
- if c.timer != nil {
256
- c.timer.Stop()
257
- c.timer = nil
258
- }
259
- c.mu.Unlock()
260
- }
261
-
262
- // WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)).
263
- //
264
- // Canceling this context releases resources associated with it, so code should
265
- // call cancel as soon as the operations running in this Context complete:
266
- //
267
- // func slowOperationWithTimeout(ctx context.Context) (Result, error) {
268
- // ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond)
269
- // defer cancel() // releases resources if slowOperation completes before timeout elapses
270
- // return slowOperation(ctx)
271
- // }
272
- func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) {
273
- return WithDeadline(parent, time.Now().Add(timeout))
274
- }
275
-
276
- // WithValue returns a copy of parent in which the value associated with key is
277
- // val.
278
- //
279
- // Use context Values only for request-scoped data that transits processes and
280
- // APIs, not for passing optional parameters to functions.
281
- func WithValue(parent Context, key interface{}, val interface{}) Context {
282
- return &valueCtx{parent, key, val}
283
- }
284
-
285
- // A valueCtx carries a key-value pair. It implements Value for that key and
286
- // delegates all other calls to the embedded Context.
287
- type valueCtx struct {
288
- Context
289
- key, val interface{}
290
- }
291
-
292
- func (c *valueCtx) String() string {
293
- return fmt.Sprintf("%v.WithValue(%#v, %#v)", c.Context, c.key, c.val)
294
- }
295
-
296
- func (c *valueCtx) Value(key interface{}) interface{} {
297
- if c.key == key {
298
- return c.val
299
- }
300
- return c.Context.Value(key)
301
- }