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,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
- }