From 26413497fd4fbcef3ef21720d7b0730964d2bd92 Mon Sep 17 00:00:00 2001 From: Christian Fochler Date: Sun, 6 Sep 2020 14:35:49 +0200 Subject: [PATCH 1/2] Use git-lfs --- doc/CT-API-1.1.1.pdf | Bin 56222 -> 130 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/CT-API-1.1.1.pdf b/doc/CT-API-1.1.1.pdf index bb6a7d098b9c0645cf307479367b4e1479670e92..7780055b1ba1c4b514cdebe4c21b3da6da156642 100644 GIT binary patch literal 130 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 Kib_x Date: Sun, 6 Sep 2020 14:36:17 +0200 Subject: [PATCH 2/2] Use anyhow instead of failure - use once_cell instead of lazy_static - update dependencies --- Cargo.lock | 1292 ++++++++++--------- Cargo.toml | 22 +- src/ctapi/close.rs | 44 +- src/ctapi/data.rs | 70 +- src/ctapi/init.rs | 46 +- src/ctapi/mod.rs | 5 +- src/http.rs | 14 +- src/lib.rs | 11 +- src/logging.rs | 4 +- src/settings.rs | 11 +- src/tests.rs | 167 +++ tests/negative.rs | 125 ++ tests/{integration_tests.rs => positive.rs} | 7 +- 13 files changed, 1109 insertions(+), 709 deletions(-) create mode 100644 src/tests.rs create mode 100644 tests/negative.rs rename tests/{integration_tests.rs => positive.rs} (94%) diff --git a/Cargo.lock b/Cargo.lock index b8edf65..c32c3cc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6,11 +6,11 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -21,13 +21,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-service 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "derive_more 0.99.5 (registry+https://github.com/rust-lang/crates.io-index)", - "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "derive_more 0.99.9 (registry+https://github.com/rust-lang/crates.io-index)", + "either 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "trust-dns-proto 0.18.0-alpha.2 (registry+https://github.com/rust-lang/crates.io-index)", "trust-dns-resolver 0.18.0-alpha.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -40,48 +40,48 @@ dependencies = [ "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "actix-connect 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-threadpool 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-service 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-threadpool 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "chrono 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)", - "copyless 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "derive_more 0.99.5 (registry+https://github.com/rust-lang/crates.io-index)", - "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding_rs 0.8.22 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-channel 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "chrono 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)", + "copyless 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "derive_more 0.99.9 (registry+https://github.com/rust-lang/crates.io-index)", + "either 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_rs 0.8.24 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "h2 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "h2 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "indexmap 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.23 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.57 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "actix-macros" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -91,9 +91,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytestring 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -101,68 +101,68 @@ name = "actix-rt" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "actix-macros 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-threadpool 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "copyless 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-channel 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-macros 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-threadpool 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "copyless 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "actix-server" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-service 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", - "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", + "mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "actix-service" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-util 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.23 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "actix-testing" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "actix-macros 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-macros 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-server 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-server 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-service 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "actix-threadpool" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "derive_more 0.99.5 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-channel 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "derive_more 0.99.9 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", - "threadpool 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "threadpool 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -172,12 +172,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-service 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "derive_more 0.99.5 (registry+https://github.com/rust-lang/crates.io-index)", - "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "derive_more 0.99.9 (registry+https://github.com/rust-lang/crates.io-index)", + "either 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -187,13 +187,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-service 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "either 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.23 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -204,47 +204,60 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "actix-http 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-macros 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-macros 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "actix-router 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-server 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-testing 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-threadpool 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-server 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-service 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-testing 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-threadpool 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "actix-tls 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-web-codegen 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-web-codegen 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "awc 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "derive_more 0.99.5 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding_rs 0.8.22 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "derive_more 0.99.9 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_rs 0.8.24 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", - "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)", + "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.23 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.57 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "actix-web-codegen" -version = "0.2.1" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "addr2line" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "gimli 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "adler" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "aho-corasick" -version = "0.7.10" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -255,32 +268,34 @@ name = "antidote" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "anyhow" +version = "1.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "arc-swap" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "arrayvec" -version = "0.4.12" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", -] [[package]] name = "async-trait" -version = "0.1.30" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "autocfg" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -291,40 +306,33 @@ dependencies = [ "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "actix-http 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-service 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "derive_more 0.99.5 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "derive_more 0.99.9 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.57 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "backtrace" -version = "0.3.46" +version = "0.3.50" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace-sys 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", + "addr2line 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz_oxide 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "object 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "backtrace-sys" -version = "0.1.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "base-x" version = "0.2.6" @@ -337,7 +345,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "base64" -version = "0.12.0" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -347,7 +355,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bumpalo" -version = "3.2.1" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -357,7 +365,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bytes" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -365,12 +373,12 @@ name = "bytestring" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "cc" -version = "1.0.52" +version = "1.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -380,12 +388,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "chrono" -version = "0.4.13" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -401,17 +409,25 @@ dependencies = [ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "cloudabi" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "config" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "rust-ini 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)", - "yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.57 (registry+https://github.com/rust-lang/crates.io-index)", + "yaml-rust 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -419,23 +435,29 @@ name = "const-cstr" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "const_fn" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "cookie" -version = "0.13.3" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)", + "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "copyless" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "crossbeam-channel" -version = "0.4.2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -447,7 +469,7 @@ name = "crossbeam-utils" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -457,42 +479,42 @@ name = "ctehxk2" version = "0.15.11" dependencies = [ "antidote 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "chrono 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)", + "anyhow 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)", + "chrono 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)", "config 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "const-cstr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "data-encoding 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "data-encoding 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "dlopen 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "fern 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures-timer 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)", - "serial_test 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.57 (registry+https://github.com/rust-lang/crates.io-index)", + "serial_test 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "spectral 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "test-server 0.8.0 (git+https://github.com/ChriFo/test-server-rs?tag=0.8.0)", - "ureq 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "test-server 0.9.0 (git+https://github.com/ChriFo/test-server-rs?tag=0.9.0)", + "ureq 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "winres 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "data-encoding" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "derive_more" -version = "0.99.5" +version = "0.99.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -507,8 +529,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "dlopen_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -516,24 +538,24 @@ name = "dlopen_derive" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "dtoa" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "either" -version = "1.5.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "encoding_rs" -version = "0.8.22" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -541,13 +563,13 @@ dependencies = [ [[package]] name = "enum-as-inner" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -555,19 +577,19 @@ name = "failure" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.46 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.50 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "failure_derive" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", - "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", + "synstructure 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -575,12 +597,12 @@ name = "fern" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "fnv" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -604,67 +626,70 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "futures" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-channel 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-executor 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-io 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-task 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-executor 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-io 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "futures-channel" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "futures-core" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "futures-executor" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-task 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "futures-io" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "futures-macro" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro-hack 0.5.15 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-hack 0.5.18 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "futures-sink" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "futures-task" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "once_cell 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "futures-timer" @@ -673,19 +698,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "futures-util" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-channel 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-io 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-macro 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-task 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-io 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-macro 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.23 (registry+https://github.com/rust-lang/crates.io-index)", "pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro-hack 0.5.15 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro-nested 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-hack 0.5.18 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-nested 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -703,28 +729,38 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "gimli" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "h2" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "indexmap 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "hashbrown" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "heck" version = "0.3.1" @@ -735,10 +771,10 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.12" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -746,9 +782,9 @@ name = "hostname" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "match_cfg 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -756,9 +792,9 @@ name = "http" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -773,23 +809,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-normalization 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "indexmap" -version = "1.3.2" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "hashbrown 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "instant" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "iovec" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -798,22 +840,22 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", - "widestring 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "widestring 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "itoa" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "js-sys" -version = "0.3.38" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "wasm-bindgen 0.2.61 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -837,24 +879,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "lexical-core" -version = "0.6.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "ryu 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "static_assertions 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libc" -version = "0.2.69" +version = "0.2.76" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "linked-hash-map" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -865,9 +907,17 @@ dependencies = [ "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "lock_api" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "log" -version = "0.4.8" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -878,7 +928,7 @@ name = "lru-cache" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "linked-hash-map 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -906,9 +956,17 @@ name = "mime" version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "miniz_oxide" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "adler 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "mio" -version = "0.6.21" +version = "0.6.22" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -916,22 +974,22 @@ dependencies = [ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", + "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "mio-uds" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", - "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -940,34 +998,29 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", + "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "net2" -version = "0.2.33" +version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "nom" -version = "5.1.1" +version = "5.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lexical-core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lexical-core 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -977,10 +1030,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "num-bigint 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", "num-complex 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "num-iter 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", + "num-iter 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", "num-rational 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -988,8 +1041,8 @@ name = "num-bigint" version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -999,27 +1052,27 @@ name = "num-complex" version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "num-integer" -version = "0.1.42" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "num-iter" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1028,17 +1081,17 @@ version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "num-bigint 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "num-traits" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1046,13 +1099,18 @@ name = "num_cpus" version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "hermit-abi 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "object" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "once_cell" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1064,6 +1122,16 @@ dependencies = [ "parking_lot_core 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "parking_lot" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "instant 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "lock_api 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot_core 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "parking_lot_core" version = "0.7.2" @@ -1071,10 +1139,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "cloudabi 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "instant 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1084,25 +1166,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "pin-project" -version = "0.4.9" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "pin-project-internal 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project-internal 0.4.23 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "pin-project-internal" -version = "0.4.9" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "pin-project-lite" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1112,17 +1194,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ppv-lite86" -version = "0.2.6" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "proc-macro-hack" -version = "0.5.15" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "proc-macro-nested" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1135,10 +1217,10 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1164,10 +1246,10 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.4" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1176,10 +1258,10 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1188,7 +1270,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1199,7 +1281,7 @@ name = "rand_chacha" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "ppv-lite86 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1242,31 +1324,31 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.1.56" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "regex" -version = "1.3.7" +version = "1.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.7.13 (registry+https://github.com/rust-lang/crates.io-index)", "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex-syntax" -version = "0.6.17" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "remove_dir_all" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1280,16 +1362,16 @@ dependencies = [ [[package]] name = "ring" -version = "0.16.13" +version = "0.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", - "once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "web-sys 0.3.38 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "web-sys 0.3.44 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1317,19 +1399,19 @@ dependencies = [ [[package]] name = "rustls" -version = "0.17.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.16.13 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.16.15 (registry+https://github.com/rust-lang/crates.io-index)", "sct 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "ryu" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1342,7 +1424,7 @@ name = "sct" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ring 0.16.13 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.16.15 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1361,30 +1443,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_derive" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_json" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "ryu 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1392,30 +1474,30 @@ name = "serde_urlencoded" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", + "dtoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serial_test" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", - "serial_test_derive 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serial_test_derive 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serial_test_derive" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1425,11 +1507,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "signal-hook-registry" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arc-swap 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "arc-swap 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1439,7 +1521,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "smallvec" -version = "1.4.0" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1448,9 +1530,9 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1468,12 +1550,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "standback" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "static_assertions" -version = "0.3.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1486,7 +1571,7 @@ dependencies = [ "stdweb-derive 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "stdweb-internal-macros 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", "stdweb-internal-runtime 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen 0.2.61 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1494,11 +1579,11 @@ name = "stdweb-derive" version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1507,13 +1592,13 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base-x 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.57 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1533,23 +1618,23 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.33" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "synstructure" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1558,24 +1643,24 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", + "remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "test-server" -version = "0.8.0" -source = "git+https://github.com/ChriFo/test-server-rs?tag=0.8.0#66dde7f9ff9ce11e547aa07b177596d0bd397b7f" +version = "0.9.0" +source = "git+https://github.com/ChriFo/test-server-rs?tag=0.9.0#9c5d93b31d4fe1136584b209e97c7921b322b330" dependencies = [ "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "actix-web 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-channel 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "anyhow 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-channel 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1590,7 +1675,7 @@ dependencies = [ [[package]] name = "threadpool" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1598,25 +1683,26 @@ dependencies = [ [[package]] name = "time" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", + "wasi 0.10.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "time" -version = "0.2.12" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", - "standback 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "const_fn 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", + "standback 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "stdweb 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", "time-macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1624,7 +1710,7 @@ name = "time-macros" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro-hack 0.5.15 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-hack 0.5.18 (registry+https://github.com/rust-lang/crates.io-index)", "time-macros-impl 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1633,31 +1719,35 @@ name = "time-macros-impl" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro-hack 0.5.15 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "standback 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-hack 0.5.18 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "standback 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "tinyvec" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "tokio" -version = "0.2.20" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", - "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", + "mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project-lite 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "signal-hook-registry 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1665,12 +1755,12 @@ name = "tokio-util" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project-lite 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1678,12 +1768,12 @@ name = "tokio-util" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project-lite 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1691,7 +1781,25 @@ name = "toml" version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tracing" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing-core 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tracing-core" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1699,17 +1807,17 @@ name = "trust-dns-proto" version = "0.18.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "async-trait 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", - "enum-as-inner 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "async-trait 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "enum-as-inner 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1720,14 +1828,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "ipconfig 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "resolv-conf 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "trust-dns-proto 0.18.0-alpha.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1741,10 +1849,10 @@ dependencies = [ [[package]] name = "unicode-normalization" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "smallvec 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tinyvec 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1759,7 +1867,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "unicode-xid" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1769,20 +1877,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ureq" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "base64 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", "chunked_transfer 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cookie 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)", + "cookie 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "qstring 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rustls 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)", + "rustls 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.57 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", - "webpki-roots 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.3 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki-roots 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1797,7 +1905,7 @@ dependencies = [ [[package]] name = "version_check" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1805,84 +1913,89 @@ name = "wasi" version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "wasm-bindgen" -version = "0.2.61" +version = "0.2.67" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-macro 0.2.61 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-macro 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.61" +version = "0.2.67" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bumpalo 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bumpalo 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-shared 0.2.61 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-shared 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.61" +version = "0.2.67" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-macro-support 0.2.61 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-macro-support 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.61" +version = "0.2.67" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-backend 0.2.61 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-shared 0.2.61 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-backend 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-shared 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.61" +version = "0.2.67" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "web-sys" -version = "0.3.38" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "js-sys 0.3.38 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen 0.2.61 (registry+https://github.com/rust-lang/crates.io-index)", + "js-sys 0.3.44 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "webpki" -version = "0.21.2" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ring 0.16.13 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.16.15 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "webpki-roots" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "widestring" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1892,7 +2005,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "winapi" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1919,7 +2032,7 @@ name = "winreg" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1941,140 +2054,151 @@ dependencies = [ [[package]] name = "yaml-rust" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "linked-hash-map 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [metadata] "checksum actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "09e55f0a5c2ca15795035d90c46bd0e73a5123b72f68f12596d6ba5282051380" "checksum actix-connect 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c95cc9569221e9802bf4c377f6c18b90ef10227d787611decf79fd47d2a8e76c" "checksum actix-http 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c16664cc4fdea8030837ad5a845eb231fb93fc3c5c171edfefb52fad92ce9019" -"checksum actix-macros 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "21705adc76bbe4bc98434890e73a89cd00c6015e5704a60bb6eea6c3b72316b6" +"checksum actix-macros 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a60f9ba7c4e6df97f3aacb14bb5c0cd7d98a49dcbaed0d7f292912ad9a6a3ed2" "checksum actix-router 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "9d7a10ca4d94e8c8e7a87c5173aba1b97ba9a6563ca02b0e1cd23531093d3ec8" "checksum actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "143fcc2912e0d1de2bcf4e2f720d2a60c28652ab4179685a1ee159e0fb3db227" -"checksum actix-server 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "582a7173c281a4f46b5aa168a11e7f37183dcb71177a39312cc2264da7a632c9" -"checksum actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d3e4fc95dfa7e24171b2d0bb46b85f8ab0e8499e4e3caec691fc4ea65c287564" -"checksum actix-testing 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "48494745b72d0ea8ff0cf874aaf9b622a3ee03d7081ee0c04edea4f26d32c911" -"checksum actix-threadpool 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf4082192601de5f303013709ff84d81ca6a1bc4af7fb24f367a500a23c6e84e" +"checksum actix-server 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e6d74b464215a473c973a2d7d03a69cc10f4ce1f4b38a7659c5193dc5c675630" +"checksum actix-service 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0052435d581b5be835d11f4eb3bce417c8af18d87ddf8ace99f8e67e595882bb" +"checksum actix-testing 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "47239ca38799ab74ee6a8a94d1ce857014b2ac36f242f70f3f75a66f691e791c" +"checksum actix-threadpool 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d209f04d002854b9afd3743032a27b066158817965bf5d036824d19ac2cc0e30" "checksum actix-tls 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a4e5b4faaf105e9a6d389c606c298dcdb033061b00d532af9df56ff3a54995a8" "checksum actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "fcf8f5631bf01adec2267808f00e228b761c60c0584cc9fa0b5364f41d147f4e" "checksum actix-web 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3158e822461040822f0dbf1735b9c2ce1f95f93b651d7a7aded00b1efbb1f635" -"checksum actix-web-codegen 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4f00371942083469785f7e28c540164af1913ee7c96a4534acb9cea92c39f057" -"checksum aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada" +"checksum actix-web-codegen 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a71bf475cbe07281d0b3696abb48212db118e7e23219f13596ce865235ff5766" +"checksum addr2line 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072" +"checksum adler 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" +"checksum aho-corasick 0.7.13 (registry+https://github.com/rust-lang/crates.io-index)" = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86" "checksum antidote 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "34fde25430d87a9388dadbe6e34d7f72a462c8b43ac8d309b42b0a8505d7e2a5" -"checksum arc-swap 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "b585a98a234c46fc563103e9278c9391fde1f4e6850334da895d27edb9580f62" -"checksum arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" -"checksum async-trait 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)" = "da71fef07bc806586090247e971229289f64c210a278ee5ae419314eb386b31d" -"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" +"checksum anyhow 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)" = "6b602bfe940d21c130f3895acd65221e8a61270debe89d628b9cb4e3ccb8569b" +"checksum arc-swap 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034" +"checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" +"checksum async-trait 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "687c230d85c0a52504709705fc8a53e4a692b83a2184f03dae73e38e1e93a783" +"checksum autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" "checksum awc 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d7601d4d1d7ef2335d6597a41b5fe069f6ab799b85f53565ab390e7b7065aac5" -"checksum backtrace 0.3.46 (registry+https://github.com/rust-lang/crates.io-index)" = "b1e692897359247cc6bb902933361652380af0f1b7651ae5c5013407f30e109e" -"checksum backtrace-sys 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)" = "18fbebbe1c9d1f383a9cc7e8ccdb471b91c8d024ee9c2ca5b5346121fe8b4399" +"checksum backtrace 0.3.50 (registry+https://github.com/rust-lang/crates.io-index)" = "46254cf2fdcdf1badb5934448c1bcbe046a56537b3987d96c51a7afc5d03f293" "checksum base-x 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1b20b618342cf9891c292c4f5ac2cde7287cc5c87e87e9c769d617793607dec1" "checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" -"checksum base64 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d5ca2cd0adc3f48f9e9ea5a6bbdf9ccc0bfade884847e484d452414c7ccffb3" +"checksum base64 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" "checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" -"checksum bumpalo 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "12ae9db68ad7fac5fe51304d20f016c911539251075a214f8e663babefa35187" +"checksum bumpalo 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820" "checksum byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" -"checksum bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1" +"checksum bytes 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" "checksum bytestring 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fc7c05fa5172da78a62d9949d662d2ac89d4cc7355d7b49adee5163f1fb3f363" -"checksum cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)" = "c3d87b23d6a92cd03af510a5ade527033f6aa6fa92161e2d5863a907d4c5e31d" +"checksum cc 1.0.59 (registry+https://github.com/rust-lang/crates.io-index)" = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381" "checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" -"checksum chrono 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)" = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6" +"checksum chrono 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)" = "942f72db697d8767c22d46a598e01f2d3b475501ea43d0db4f16d90259182d0b" "checksum chunked_transfer 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d29eb15132782371f71da8f947dba48b3717bdb6fa771b9b434d645e40a7193" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" +"checksum cloudabi 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4344512281c643ae7638bbabc3af17a11307803ec8f0fcad9fae512a8bf36467" "checksum config 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "19b076e143e1d9538dde65da30f8481c2a6c44040edb8e02b9bf1351edb92ce3" "checksum const-cstr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6" -"checksum cookie 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0c60ef6d0bbf56ad2674249b6bb74f2c6aeb98b98dd57b5d3e37cace33011d69" -"checksum copyless 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6ff9c56c9fb2a49c05ef0e431485a22400af20d33226dc0764d891d09e724127" -"checksum crossbeam-channel 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cced8691919c02aac3cb0a1bc2e9b73d89e832bf9a06fc579d4e71b68a2da061" +"checksum const_fn 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ce90df4c658c62f12d78f7508cf92f9173e5184a539c10bfe54a3107b3ffd0f2" +"checksum cookie 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1373a16a4937bc34efec7b391f9c1500c30b8478a701a4f44c9165cc0475a6e0" +"checksum copyless 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a2df960f5d869b2dd8532793fde43eb5427cceb126c929747a26823ab0eeb536" +"checksum crossbeam-channel 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" "checksum crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -"checksum data-encoding 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72aa14c04dfae8dd7d8a2b1cb7ca2152618cd01336dbfe704b8dcbf8d41dbd69" -"checksum derive_more 0.99.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e2323f3f47db9a0e77ce7a300605d8d2098597fc451ed1a97bb1f6411bb550a7" +"checksum data-encoding 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4d0e2d24e5ee3b23a01de38eefdcd978907890701f08ffffd4cb457ca4ee8d6" +"checksum derive_more 0.99.9 (registry+https://github.com/rust-lang/crates.io-index)" = "298998b1cf6b5b2c8a7b023dfd45821825ce3ba8a8af55c921a0e734e4653f76" "checksum discard 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" "checksum dlopen 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "71e80ad39f814a9abe68583cd50a2d45c8a67561c3361ab8da240587dda80937" "checksum dlopen_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f236d9e1b1fbd81cea0f9cbdc8dcc7e8ebcd80e6659cd7cb2ad5f6c05946c581" -"checksum dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3" -"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" -"checksum encoding_rs 0.8.22 (registry+https://github.com/rust-lang/crates.io-index)" = "cd8d03faa7fe0c1431609dfad7bbe827af30f82e1e2ae6f7ee4fca6bd764bc28" -"checksum enum-as-inner 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bc4bfcfacb61d231109d1d55202c1f33263319668b168843e02ad4652725ec9c" +"checksum dtoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b" +"checksum either 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cd56b59865bce947ac5958779cfa508f6c3b9497cc762b7e24a12d11ccde2c4f" +"checksum encoding_rs 0.8.24 (registry+https://github.com/rust-lang/crates.io-index)" = "a51b8cf747471cb9499b6d59e59b0444f4c90eba8968c4e44874e92b5b64ace2" +"checksum enum-as-inner 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595" "checksum failure 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" -"checksum failure_derive 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "030a733c8287d6213886dd487564ff5c8f6aae10278b3588ed177f9d18f8d231" +"checksum failure_derive 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" "checksum fern 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8c9a4820f0ccc8a7afd67c39a0f1a0f4b07ca1725164271a64939d7aeb9af065" -"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" +"checksum fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" -"checksum futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5c329ae8753502fb44ae4fc2b622fa2a94652c41e795143765ba0927f92ab780" -"checksum futures-channel 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0c77d04ce8edd9cb903932b608268b3fffec4163dc053b3b402bf47eac1f1a8" -"checksum futures-core 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f25592f769825e89b92358db00d26f965761e094951ac44d3663ef25b7ac464a" -"checksum futures-executor 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f674f3e1bcb15b37284a90cedf55afdba482ab061c407a9c0ebbd0f3109741ba" -"checksum futures-io 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a638959aa96152c7a4cddf50fcb1e3fede0583b27157c26e67d6f99904090dc6" -"checksum futures-macro 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "9a5081aa3de1f7542a794a397cde100ed903b0630152d0973479018fd85423a7" -"checksum futures-sink 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3466821b4bc114d95b087b850a724c6f83115e929bc88f1fa98a3304a944c8a6" -"checksum futures-task 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7b0a34e53cf6cdcd0178aa573aed466b646eb3db769570841fda0c7ede375a27" +"checksum futures 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613" +"checksum futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" +"checksum futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" +"checksum futures-executor 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314" +"checksum futures-io 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789" +"checksum futures-macro 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" +"checksum futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc" +"checksum futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626" "checksum futures-timer 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" -"checksum futures-util 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "22766cf25d64306bedf0384da004d05c9974ab104fcc4528f1236181c18004c5" +"checksum futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" "checksum fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" "checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" -"checksum h2 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "377038bf3c89d18d6ca1431e7a5027194fbd724ca10592b9487ede5e8e144f42" +"checksum gimli 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724" +"checksum h2 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "993f9e0baeed60001cf565546b0d3dbe6a6ad23f2bd31644a133c641eccf6d53" +"checksum hashbrown 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "00d63df3d41950fb462ed38308eea019113ad1508da725bbedcd0fa5a85ef5f7" "checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" -"checksum hermit-abi 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "61565ff7aaace3525556587bd2dc31d4a07071957be715e63ce7b1eccf51a8f4" +"checksum hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9" "checksum hostname 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" "checksum http 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9" "checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" "checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" -"checksum indexmap 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "076f042c5b7b98f31d205f1249267e12a6518c1481e9dae9764af19b707d2292" +"checksum indexmap 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2" +"checksum instant 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "5b141fdc7836c525d4d594027d318c84161ca17aaf8113ab1f81ab93ae897485" "checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" "checksum ipconfig 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7" -"checksum itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" -"checksum js-sys 0.3.38 (registry+https://github.com/rust-lang/crates.io-index)" = "0b823ebafcee1632403f2782d28728aab353f7881547a700043ef455c078326f" +"checksum itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6" +"checksum js-sys 0.3.44 (registry+https://github.com/rust-lang/crates.io-index)" = "85a7e2c92a4804dd459b86c339278d0fe87cf93757fae222c3fa3ae75458bc73" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -"checksum lexical-core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d7043aa5c05dd34fb73b47acb8c3708eac428de4545ea3682ed2f11293ebd890" -"checksum libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)" = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005" -"checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83" +"checksum lexical-core 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "db65c6da02e61f55dae90a0ae427b2a5f6b3e8db09f58d10efab23af92592616" +"checksum libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)" = "755456fae044e6fa1ebbbd1b3e902ae19e73097ed4ed87bb79934a867c007bc3" +"checksum linked-hash-map 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a" "checksum lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" -"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" +"checksum lock_api 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c" +"checksum log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" "checksum lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" "checksum match_cfg 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" "checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" "checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" "checksum mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" -"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f" -"checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" +"checksum miniz_oxide 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4d7559a8a40d0f97e1edea3220f698f78b1c5ab67532e49f68fde3910323b722" +"checksum mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)" = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" +"checksum mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" -"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" -"checksum nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" -"checksum nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6" +"checksum net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)" = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7" +"checksum nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" "checksum num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e" "checksum num-bigint 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)" = "e63899ad0da84ce718c14936262a41cee2c79c981fc0a0e7c7beb47d5a07e8c1" "checksum num-complex 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "b288631d7878aaf59442cffd36910ea604ecd7745c36054328595114001c9656" -"checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba" -"checksum num-iter 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "dfb0800a0291891dd9f4fe7bd9c19384f98f7fbe0cd0f39a2c6b88b9868bbc00" +"checksum num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" +"checksum num-iter 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f" "checksum num-rational 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e" -"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" +"checksum num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" "checksum num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" -"checksum once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b1c601810575c99596d4afc46f78a678c80105117c379eb3650cf99b8a21ce5b" +"checksum object 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5" +"checksum once_cell 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad" "checksum parking_lot 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" +"checksum parking_lot 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a4893845fa2ca272e647da5d0e46660a314ead9c2fdd9a883aabc32e481a8733" "checksum parking_lot_core 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" +"checksum parking_lot_core 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b" "checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" -"checksum pin-project 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6f6a7f5eee6292c559c793430c55c00aea9d3b3d1905e855806ca4d7253426a2" -"checksum pin-project-internal 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)" = "8988430ce790d8682672117bc06dda364c0be32d3abd738234f19f3240bad99a" -"checksum pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "237844750cfbb86f67afe27eee600dfbbcb6188d734139b534cbfbf4f96792ae" +"checksum pin-project 0.4.23 (registry+https://github.com/rust-lang/crates.io-index)" = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa" +"checksum pin-project-internal 0.4.23 (registry+https://github.com/rust-lang/crates.io-index)" = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f" +"checksum pin-project-lite 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "282adbf10f2698a7a77f8e983a74b2d18176c19a7fd32a45446139ae7b02b715" "checksum pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b" -"checksum proc-macro-hack 0.5.15 (registry+https://github.com/rust-lang/crates.io-index)" = "0d659fe7c6d27f25e9d80a1a094c223f5246f6a6596453e09d7229bf42750b63" -"checksum proc-macro-nested 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8e946095f9d3ed29ec38de908c22f95d9ac008e424c7bcae54c75a79c527c694" +"checksum ppv-lite86 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20" +"checksum proc-macro-hack 0.5.18 (registry+https://github.com/rust-lang/crates.io-index)" = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598" +"checksum proc-macro-nested 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" "checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -"checksum proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa" +"checksum proc-macro2 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)" = "175c513d55719db99da20232b06cda8bab6b83ec2d04e3283edf0213c37c1a29" "checksum qstring 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e" "checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" "checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" -"checksum quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4c1f4b0efa5fc5e8ceb705136bfee52cfdb6a4e3509f770b478cd6ed434232a7" +"checksum quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" "checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" "checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" "checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" @@ -2083,83 +2207,87 @@ dependencies = [ "checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" "checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" -"checksum regex 1.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a6020f034922e3194c711b82a627453881bc4682166cabb07134a10c26ba7692" -"checksum regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)" = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae" -"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" +"checksum redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)" = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" +"checksum regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" +"checksum regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)" = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" +"checksum remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" "checksum resolv-conf 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "11834e137f3b14e309437a8276714eed3a80d1ef894869e510f2c0c0b98b9f4a" -"checksum ring 0.16.13 (registry+https://github.com/rust-lang/crates.io-index)" = "703516ae74571f24b465b4a1431e81e2ad51336cb0ded733a55a1aa3eccac196" +"checksum ring 0.16.15 (registry+https://github.com/rust-lang/crates.io-index)" = "952cd6b98c85bbc30efa1ba5783b8abf12fec8b3287ffa52605b9432313e34e4" "checksum rust-ini 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3e52c148ef37f8c375d49d5a73aa70713125b7f19095948a923f80afdeb22ec2" "checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum rustls 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c0d4a31f5d68413404705d6982529b0e11a9aacd4839d1d6222ee3b8cb4015e1" -"checksum ryu 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ed3d612bc64430efeb3f7ee6ef26d590dce0c43249217bddc62112540c7941e1" +"checksum rustls 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" +"checksum ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" "checksum scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" "checksum sct 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)" = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3" -"checksum serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)" = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e" -"checksum serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)" = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3" +"checksum serde 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)" = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5" +"checksum serde_derive 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)" = "609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48" +"checksum serde_json 1.0.57 (registry+https://github.com/rust-lang/crates.io-index)" = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c" "checksum serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97" -"checksum serial_test 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fef5f7c7434b2f2c598adc6f9494648a1e41274a75c0ba4056f680ae0c117fd6" -"checksum serial_test_derive 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d08338d8024b227c62bd68a12c7c9883f5c66780abaef15c550dc56f46ee6515" +"checksum serial_test 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1b15f74add9a9d4a3eb2bf739c9a427d266d3895b53d992c3a7c234fec2ff1f1" +"checksum serial_test_derive 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "65f59259be9fc1bf677d06cc1456e97756004a1a5a577480f71430bd7c17ba33" "checksum sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" -"checksum signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" +"checksum signal-hook-registry 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a3e12110bc539e657a646068aaf5eb5b63af9d0c1f7b29c97113fad80e15f035" "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" -"checksum smallvec 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4" +"checksum smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252" "checksum socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)" = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918" "checksum spectral 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ae3c15181f4b14e52eeaac3efaeec4d2764716ce9c86da0c934c3e318649c5ba" "checksum spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" -"checksum standback 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "47e4b8c631c998468961a9ea159f064c5c8499b95b5e4a34b77849d45949d540" -"checksum static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3" +"checksum standback 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "33a71ea1ea5f8747d1af1979bfb7e65c3a025a70609f04ceb78425bc5adad8e6" +"checksum static_assertions 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" "checksum stdweb 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" "checksum stdweb-derive 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" "checksum stdweb-internal-macros 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" "checksum stdweb-internal-runtime 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" "checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" -"checksum syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "e8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cd" -"checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" +"checksum syn 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)" = "963f7d3cc59b59b9325165add223142bbf1df27655d07789f109896d353d8350" +"checksum synstructure 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" "checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" -"checksum test-server 0.8.0 (git+https://github.com/ChriFo/test-server-rs?tag=0.8.0)" = "" +"checksum test-server 0.9.0 (git+https://github.com/ChriFo/test-server-rs?tag=0.9.0)" = "" "checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" -"checksum threadpool 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e8dae184447c15d5a6916d973c642aec485105a13cd238192a6927ae3e077d66" -"checksum time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" -"checksum time 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "b360ea5d21fa3f84cb059710501698e91a63dd49fbcc5d0491e4241f5019ee0c" +"checksum threadpool 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +"checksum time 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)" = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +"checksum time 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)" = "ca7ec98a72285d12e0febb26f0847b12d54be24577618719df654c66cadab55d" "checksum time-macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9ae9b6e9f095bc105e183e3cd493d72579be3181ad4004fceb01adbe9eecab2d" "checksum time-macros-impl 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa" -"checksum tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)" = "05c1d570eb1a36f0345a5ce9c6c6e665b70b73d11236912c0b477616aeec47b1" +"checksum tinyvec 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117" +"checksum tokio 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)" = "5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd" "checksum tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "571da51182ec208780505a32528fc5512a8fe1443ab960b3f2f3ef093cd16930" "checksum tokio-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" "checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" +"checksum tracing 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)" = "6d79ca061b032d6ce30c660fded31189ca0b9922bf483cd70759f13a2d86786c" +"checksum tracing-core 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "4f0e00789804e99b20f12bc7003ca416309d28a6f495d6af58d1e2c2842461b5" "checksum trust-dns-proto 0.18.0-alpha.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2a7f3a2ab8a919f5eca52a468866a67ed7d3efa265d48a652a9a3452272b413f" "checksum trust-dns-resolver 0.18.0-alpha.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6f90b1502b226f8b2514c6d5b37bafa8c200d7ca4102d57dc36ee0f3b7a04a2f" "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" -"checksum unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4" +"checksum unicode-normalization 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977" "checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" -"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" +"checksum unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" "checksum untrusted 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" -"checksum ureq 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "677df6896edc382f1a2abcbb3e4058edfe973cdc4e1ed764b11891a7a289bfc0" +"checksum ureq 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b770aa61edaa144d3af86a8b0ccbb1bf8ca9dd0c1ac2a17081f35943aae6eb82" "checksum url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" -"checksum version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce" +"checksum version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" +"checksum wasi 0.10.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" "checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" -"checksum wasm-bindgen 0.2.61 (registry+https://github.com/rust-lang/crates.io-index)" = "f56e97dbea16d5f56549d6c8ea7f36efb6be98507308650c1a5970574b3941b9" -"checksum wasm-bindgen-backend 0.2.61 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75d4f3f9b81dfc7d66b955876b325b20e8affd4ce8d93e51162626fc5faadb" -"checksum wasm-bindgen-macro 0.2.61 (registry+https://github.com/rust-lang/crates.io-index)" = "9dcde4b19e863521c1e78ecf100935132396291b09ae0ae2e155ff84ccbe9736" -"checksum wasm-bindgen-macro-support 0.2.61 (registry+https://github.com/rust-lang/crates.io-index)" = "13d87d2b117af2b86472402d70f7eb173bbe166beb5e727f3c0bebecdf356504" -"checksum wasm-bindgen-shared 0.2.61 (registry+https://github.com/rust-lang/crates.io-index)" = "71f77b681efd0bca6f8ea356cdc2e497538b41d3e2a02afed18ce8f022231d29" -"checksum web-sys 0.3.38 (registry+https://github.com/rust-lang/crates.io-index)" = "07c5819dc39222a788ca169a81aef7d02739019256300534f493b5747d5469c2" -"checksum webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f1f50e1972865d6b1adb54167d1c8ed48606004c2c9d0ea5f1eeb34d95e863ef" -"checksum webpki-roots 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8eff4b7516a57307f9349c64bf34caa34b940b66fed4b2fb3136cb7386e5739" -"checksum widestring 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effc0e4ff8085673ea7b9b2e3c73f6bd4d118810c9009ed8f1e16bd96c331db6" +"checksum wasm-bindgen 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)" = "f0563a9a4b071746dd5aedbc3a28c6fe9be4586fb3fbadb67c400d4f53c6b16c" +"checksum wasm-bindgen-backend 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)" = "bc71e4c5efa60fb9e74160e89b93353bc24059999c0ae0fb03affc39770310b0" +"checksum wasm-bindgen-macro 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)" = "97c57cefa5fa80e2ba15641578b44d36e7a64279bc5ed43c6dbaf329457a2ed2" +"checksum wasm-bindgen-macro-support 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)" = "841a6d1c35c6f596ccea1f82504a192a60378f64b3bb0261904ad8f2f5657556" +"checksum wasm-bindgen-shared 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)" = "93b162580e34310e5931c4b792560108b10fd14d64915d7fff8ff00180e70092" +"checksum web-sys 0.3.44 (registry+https://github.com/rust-lang/crates.io-index)" = "dda38f4e5ca63eda02c059d243aa25b5f35ab98451e518c51612cd0f1bd19a47" +"checksum webpki 0.21.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ab146130f5f790d45f82aeeb09e55a256573373ec64409fc19a6fb82fb1032ae" +"checksum webpki-roots 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0f20dea7535251981a9670857150d571846545088359b28e4951d350bdaf179f" +"checksum widestring 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a763e303c0e0f23b0da40888724762e802a8ffefbc22de4127ef42493c2ea68c" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" -"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" +"checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9" "checksum winres 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "ff4fb510bbfe5b8992ff15f77a2e6fe6cf062878f0eda00c0f44963a807ca5dc" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" -"checksum yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "65923dd1784f44da1d2c3dbbc5e822045628c590ba72123e1c73d3c230c4434d" +"checksum yaml-rust 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "39f0c922f1a334134dc2f7a8b67dc5d25f0735263feec974345ff706bcf20b0d" diff --git a/Cargo.toml b/Cargo.toml index 0087a1a..8c621dd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,16 +15,16 @@ crate-type = ["cdylib"] [dependencies] antidote = "1.0.0" -chrono = "0.4.13" -data-encoding = "2.2.1" -failure = "0.1.8" +anyhow = "1.0.32" +chrono = "0.4.15" +data-encoding = "2.3.0" fern = "0.6.0" -lazy_static = "1.4.0" -log = "0.4.8" -serde = "1.0.114" -serde_derive = "1.0.114" -serde_json = "1.0.56" -ureq = { version = "1.3.0", features = ["json"] } +log = "0.4.11" +once_cell = "1.4.1" +serde = "1.0.115" +serde_derive = "1.0.115" +serde_json = "1.0.57" +ureq = { version = "1.4.0", features = ["json"] } url = "2.1.1" [dependencies.config] @@ -37,10 +37,10 @@ const-cstr = "0.3.0" dlopen = "0.1.8" futures-timer = "3.0.2" rand = "0.7.3" -serial_test = "0.4.0" +serial_test = "0.5.0" spectral = "0.6.0" tempfile = "3.1.0" -test-server = { git = "https://github.com/ChriFo/test-server-rs", tag = "0.8.0" } +test-server = { git = "https://github.com/ChriFo/test-server-rs", tag = "0.9.0" } [target.'cfg(windows)'.build-dependencies] winres = "0.1.11" diff --git a/src/ctapi/close.rs b/src/ctapi/close.rs index 3333f20..76ae206 100644 --- a/src/ctapi/close.rs +++ b/src/ctapi/close.rs @@ -1,8 +1,7 @@ use crate::ctapi::MAP; use crate::{http, Status, CONFIG}; -use failure::Error; -pub fn close(mut ctn: u16) -> Result { +pub fn close(mut ctn: u16) -> anyhow::Result { if let Some(ctn_from_cfg) = CONFIG.read().ctn { debug!("Use ctn '{}' from configuration", ctn_from_cfg); ctn = ctn_from_cfg; @@ -43,10 +42,7 @@ pub fn close(mut ctn: u16) -> Result { mod tests { use super::close; - use crate::ctapi::MAP; - use crate::{Settings, Status, CONFIG}; - use failure::Error; - use std::collections::HashMap; + use crate::{ctapi::MAP, Status}; use std::env; use test_server::{self, HttpResponse}; @@ -54,7 +50,7 @@ mod tests { #[serial] fn returns_err_if_no_server() { env::set_var("K2_BASE_URL", "http://127.0.0.1:65432"); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let ctn = rand::random::(); let pn = rand::random::(); @@ -75,10 +71,10 @@ mod tests { #[test] #[serial] - fn use_ctn_and_pn_in_request_path() -> Result<(), Error> { + fn use_ctn_and_pn_in_request_path() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", HttpResponse::BadRequest)?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let ctn = rand::random::(); let pn = rand::random::(); @@ -96,14 +92,14 @@ mod tests { #[test] #[serial] - fn use_ctn_and_pn_from_config() -> Result<(), Error> { + fn use_ctn_and_pn_from_config() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", HttpResponse::BadRequest)?; env::set_var("K2_BASE_URL", server.url()); let ctn = rand::random::(); env::set_var("K2_CTN", format!("{}", ctn)); let pn = rand::random::(); env::set_var("K2_PN", format!("{}", pn)); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let _ = MAP.write().insert(ctn, pn); @@ -123,10 +119,10 @@ mod tests { #[test] #[serial] - fn returns_err_htsi_if_server_response_is_not_200() -> Result<(), Error> { + fn returns_err_htsi_if_server_response_is_not_200() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", HttpResponse::BadRequest)?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let ctn = rand::random::(); let pn = rand::random::(); @@ -142,10 +138,10 @@ mod tests { #[test] #[serial] - fn returns_err_htsi_if_server_response_not_contains_status() -> Result<(), Error> { + fn returns_err_htsi_if_server_response_not_contains_status() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", || HttpResponse::Ok().body("hello world"))?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let ctn = rand::random::(); let pn = rand::random::(); @@ -161,10 +157,10 @@ mod tests { #[test] #[serial] - fn returns_response_status_from_server() -> Result<(), Error> { + fn returns_response_status_from_server() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", || HttpResponse::Ok().body("-11"))?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let ctn = rand::random::(); let pn = rand::random::(); @@ -180,10 +176,10 @@ mod tests { #[test] #[serial] - fn return_ok_and_close_ctn_if_server_returns_ok() -> Result<(), Error> { + fn return_ok_and_close_ctn_if_server_returns_ok() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", || HttpResponse::Ok().body("0"))?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let ctn = rand::random::(); let pn = rand::random::(); @@ -196,14 +192,4 @@ mod tests { Ok(()) } - - fn init_config_clear_map() { - let mut config_guard = CONFIG.write(); - *config_guard = Settings::init().unwrap(); - drop(config_guard); - - let mut map_guard = MAP.write(); - *map_guard = HashMap::new(); - drop(map_guard); - } } diff --git a/src/ctapi/data.rs b/src/ctapi/data.rs index edf9788..e1da89a 100644 --- a/src/ctapi/data.rs +++ b/src/ctapi/data.rs @@ -1,7 +1,6 @@ use crate::ctapi::MAP; use crate::{http, Status, CONFIG}; use data_encoding::{BASE64, HEXLOWER}; -use failure::Error; use std::slice; #[allow(non_snake_case)] @@ -24,7 +23,7 @@ pub fn data( command: *const u8, lenr: *mut u16, response: *mut u8, -) -> Result { +) -> anyhow::Result { if let Some(ctn_from_cfg) = CONFIG.read().ctn { debug!("Use ctn '{}' from configuration", ctn_from_cfg); ctn = ctn_from_cfg; @@ -103,12 +102,9 @@ pub fn data( mod tests { use super::{data, Response}; - use crate::ctapi::MAP; - use crate::{Settings, Status, CONFIG}; + use crate::{ctapi::MAP, Status}; use data_encoding::BASE64; - use failure::Error; use serde_json::{self, Value}; - use std::collections::HashMap; use std::env; use std::slice; use std::u16::MAX; @@ -147,7 +143,7 @@ mod tests { #[serial] fn returns_err_if_no_server() { env::set_var("K2_BASE_URL", "http://127.0.0.1:65432"); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let (_, command, lenc, response, mut lenr, mut dad, mut sad, ctn, pn) = rand_params(); let _ = MAP.write().insert(ctn, pn); @@ -159,10 +155,10 @@ mod tests { #[test] #[serial] - fn use_ctn_and_pn_in_request_path() -> Result<(), Error> { + fn use_ctn_and_pn_in_request_path() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", HttpResponse::BadRequest)?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let (_, command, lenc, response, mut lenr, mut dad, mut sad, ctn, pn) = rand_params(); let _ = MAP.write().insert(ctn, pn); @@ -179,10 +175,10 @@ mod tests { #[test] #[serial] - fn post_body_contains_parameter() -> Result<(), Error> { + fn post_body_contains_parameter() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", HttpResponse::BadRequest)?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let (command, command_ptr, lenc, response, mut lenr, mut dad, mut sad, ctn, pn) = rand_params(); @@ -217,13 +213,13 @@ mod tests { #[test] #[serial] - fn response_is_mapped_to_parameter() -> Result<(), Error> { + fn response_is_mapped_to_parameter() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", || { HttpResponse::Ok() .body(r#"{"dad":39,"sad":63,"lenr":2,"response":"kAA=","responseCode":0}"#) })?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let (_, command, lenc, response, mut lenr, mut dad, mut sad, ctn, pn) = rand_params(); let _ = MAP.write().insert(ctn, pn); @@ -244,10 +240,32 @@ mod tests { #[test] #[serial] - fn returns_err_if_server_response_is_not_200() -> Result<(), Error> { + #[should_panic(expected = "Failed to extract response.")] + fn response_with_failure_response_field() { + let server = test_server::new("127.0.0.1:0", || { + HttpResponse::Ok() + .body(r#"{"dad":39,"sad":63,"lenr":2,"response":"0123456789","responseCode":0}"#) + }) + .unwrap(); + env::set_var("K2_BASE_URL", server.url()); + crate::tests::init_config_clear_map(); + + let (_, command, lenc, response, mut lenr, mut dad, mut sad, ctn, pn) = rand_params(); + let _ = MAP.write().insert(ctn, pn); + + let res = data(ctn, &mut dad, &mut sad, lenc, command, &mut lenr, response); + + env::remove_var("K2_BASE_URL"); + + let _status = res.unwrap(); + } + + #[test] + #[serial] + fn returns_err_if_server_response_is_not_200() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", HttpResponse::BadRequest)?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let (_, command, lenc, response, mut lenr, mut dad, mut sad, ctn, pn) = rand_params(); let _ = MAP.write().insert(ctn, pn); @@ -261,10 +279,10 @@ mod tests { #[test] #[serial] - fn returns_err_if_server_response_not_contains_response_struct_as_json() -> Result<(), Error> { + fn returns_err_if_server_response_not_contains_response_struct_as_json() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", || HttpResponse::Ok().body("hello world"))?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let (_, command, lenc, response, mut lenr, mut dad, mut sad, ctn, pn) = rand_params(); let _ = MAP.write().insert(ctn, pn); @@ -278,13 +296,13 @@ mod tests { #[test] #[serial] - fn returns_response_status_from_valid_json_response_struct() -> Result<(), Error> { + fn returns_response_status_from_valid_json_response_struct() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", || { HttpResponse::Ok() .body(r#"{"dad":1,"sad":1,"lenr":1,"response":"a=","responseCode":-11}"#) })?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let (_, command, lenc, response, mut lenr, mut dad, mut sad, ctn, pn) = rand_params(); let _ = MAP.write().insert(ctn, pn); @@ -301,14 +319,14 @@ mod tests { #[test] #[serial] - fn use_ctn_and_pn_from_config() -> Result<(), Error> { + fn use_ctn_and_pn_from_config() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", HttpResponse::BadRequest)?; env::set_var("K2_BASE_URL", server.url()); let (_, command, lenc, response, mut lenr, mut dad, mut sad, ctn, pn) = rand_params(); env::set_var("K2_CTN", format!("{}", ctn)); env::set_var("K2_PN", format!("{}", pn)); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let _ = MAP.write().insert(ctn, pn); @@ -359,14 +377,4 @@ mod tests { pn, ) } - - fn init_config_clear_map() { - let mut config_guard = CONFIG.write(); - *config_guard = Settings::init().unwrap(); - drop(config_guard); - - let mut map_guard = MAP.write(); - *map_guard = HashMap::new(); - drop(map_guard); - } } diff --git a/src/ctapi/init.rs b/src/ctapi/init.rs index 6038939..a35879e 100644 --- a/src/ctapi/init.rs +++ b/src/ctapi/init.rs @@ -1,8 +1,7 @@ use crate::ctapi::MAP; use crate::{http, Status, CONFIG}; -use failure::Error; -pub fn init(mut ctn: u16, mut pn: u16) -> Result { +pub fn init(mut ctn: u16, mut pn: u16) -> anyhow::Result { if let (Some(ctn_from_cfg), Some(pn_from_cfg)) = (CONFIG.read().ctn, CONFIG.read().pn) { debug!( "Use ctn '{}' and pn '{}' from configuration.", @@ -43,10 +42,7 @@ pub fn init(mut ctn: u16, mut pn: u16) -> Result { mod tests { use super::init; - use crate::ctapi::MAP; - use crate::{Settings, Status, CONFIG}; - use failure::Error; - use std::collections::HashMap; + use crate::{ctapi::MAP, Status}; use std::env; use test_server::{self, HttpResponse}; @@ -54,7 +50,7 @@ mod tests { #[serial] fn returns_err_if_no_server() { env::set_var("K2_BASE_URL", "http://127.0.0.1:65432"); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let ctn = rand::random::(); let pn = rand::random::(); @@ -67,7 +63,7 @@ mod tests { #[test] #[serial] fn returns_err_invalid_if_already_open() { - init_config_clear_map(); + crate::tests::init_config_clear_map(); let ctn = rand::random::(); let pn = rand::random::(); @@ -79,10 +75,10 @@ mod tests { #[test] #[serial] - fn use_ctn_and_pn_in_request_path() -> Result<(), Error> { + fn use_ctn_and_pn_in_request_path() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", HttpResponse::BadRequest)?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let ctn = rand::random::(); let pn = rand::random::(); @@ -99,14 +95,14 @@ mod tests { #[test] #[serial] - fn use_ctn_and_pn_from_config() -> Result<(), Error> { + fn use_ctn_and_pn_from_config() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", HttpResponse::BadRequest)?; env::set_var("K2_BASE_URL", server.url()); let ctn = rand::random::(); env::set_var("K2_CTN", format!("{}", ctn)); let pn = rand::random::(); env::set_var("K2_PN", format!("{}", pn)); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let unused_ctn = rand::random::(); let unused_pn = rand::random::(); @@ -125,10 +121,10 @@ mod tests { #[test] #[serial] - fn returns_err_if_server_response_is_not_200() -> Result<(), Error> { + fn returns_err_if_server_response_is_not_200() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", HttpResponse::BadRequest)?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let ctn = rand::random::(); let pn = rand::random::(); @@ -143,10 +139,10 @@ mod tests { #[test] #[serial] - fn returns_err_if_server_response_not_contains_status() -> Result<(), Error> { + fn returns_err_if_server_response_not_contains_status() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", || HttpResponse::Ok().body("hello world"))?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let ctn = rand::random::(); let pn = rand::random::(); @@ -161,10 +157,10 @@ mod tests { #[test] #[serial] - fn returns_response_status_from_server() -> Result<(), Error> { + fn returns_response_status_from_server() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", || HttpResponse::Ok().body("-11"))?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let ctn = rand::random::(); let pn = rand::random::(); @@ -178,10 +174,10 @@ mod tests { #[test] #[serial] - fn returns_ok_and_init_ctn_if_server_returns_ok() -> Result<(), Error> { + fn returns_ok_and_init_ctn_if_server_returns_ok() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", || HttpResponse::Ok().body("0"))?; env::set_var("K2_BASE_URL", server.url()); - init_config_clear_map(); + crate::tests::init_config_clear_map(); let ctn = rand::random::(); let pn = rand::random::(); @@ -193,14 +189,4 @@ mod tests { Ok(()) } - - fn init_config_clear_map() { - let mut config_guard = CONFIG.write(); - *config_guard = Settings::init().unwrap(); - drop(config_guard); - - let mut map_guard = MAP.write(); - *map_guard = HashMap::new(); - drop(map_guard); - } } diff --git a/src/ctapi/mod.rs b/src/ctapi/mod.rs index f6bb28b..be890aa 100644 --- a/src/ctapi/mod.rs +++ b/src/ctapi/mod.rs @@ -4,8 +4,7 @@ pub mod init; pub mod status; use antidote::RwLock; +use once_cell::sync::Lazy; use std::collections::HashMap; -lazy_static::lazy_static! { - static ref MAP: RwLock> = RwLock::new(HashMap::new()); -} +pub(crate) static MAP: Lazy>> = Lazy::new(|| RwLock::new(HashMap::new())); diff --git a/src/http.rs b/src/http.rs index 75eb551..e7276ab 100644 --- a/src/http.rs +++ b/src/http.rs @@ -1,8 +1,7 @@ use crate::CONFIG; -use failure::Error; use serde_json::Value; -pub fn request(path: &str, request_body: Option) -> Result { +pub fn request(path: &str, request_body: Option) -> anyhow::Result { let url = format!("{}{}", CONFIG.read().base_url, path); debug!("Request URL: {}", url); let mut request = ureq::post(&url); @@ -27,7 +26,7 @@ pub fn request(path: &str, request_body: Option) -> Result }; if response.ok() { - response.into_string().map_err(Error::from) + response.into_string().map_err(anyhow::Error::from) } else { Err(format_err!( "Request failed with status code {}", @@ -41,13 +40,12 @@ mod tests { use super::request; use crate::{Settings, CONFIG}; - use failure::Error; use std::{env, time::Duration}; use test_server::{self, helper, HttpResponse}; #[test] #[serial] - fn request_with_body_is_content_type_json() -> Result<(), Error> { + fn request_with_body_is_content_type_json() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", HttpResponse::BadRequest)?; env::set_var("K2_BASE_URL", server.url()); init_config(); @@ -67,7 +65,7 @@ mod tests { #[test] #[serial] - fn send_request_body_if_given() -> Result<(), Error> { + fn send_request_body_if_given() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", HttpResponse::BadRequest)?; env::set_var("K2_BASE_URL", server.url()); init_config(); @@ -86,7 +84,7 @@ mod tests { #[test] #[serial] - fn if_no_json_is_given_send_empty_request_body() -> Result<(), Error> { + fn if_no_json_is_given_send_empty_request_body() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", HttpResponse::BadRequest)?; env::set_var("K2_BASE_URL", server.url()); init_config(); @@ -103,7 +101,7 @@ mod tests { #[test] #[serial] - fn http_is_using_timeout_from_config() -> Result<(), Error> { + fn http_is_using_timeout_from_config() -> anyhow::Result<()> { let server = test_server::new("127.0.0.1:0", || async { futures_timer::Delay::new(Duration::from_secs(5)).await; HttpResponse::Ok().body("foobar") diff --git a/src/lib.rs b/src/lib.rs index 8b95752..fe6aa17 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -6,7 +6,7 @@ #![warn(unused_imports)] #[macro_use] -extern crate failure; +extern crate anyhow; #[macro_use] extern crate log; #[macro_use] @@ -21,6 +21,8 @@ mod ctapi; mod http; mod logging; mod settings; +#[cfg(test)] +mod tests; use crate::ctapi::close::close; use crate::ctapi::data::data; @@ -28,12 +30,11 @@ use crate::ctapi::init::init; use crate::ctapi::status::Status; use crate::settings::Settings; use antidote::RwLock; +use once_cell::sync::Lazy; use std::panic; -lazy_static::lazy_static! { - pub(crate) static ref CONFIG: RwLock = - RwLock::new(Settings::init().expect("Failed to init configuration!")); -} +static CONFIG: Lazy> = + Lazy::new(|| RwLock::new(Settings::init().expect("Failed to init configuration!"))); #[no_mangle] pub extern "system" fn CT_init(ctn: u16, pn: u16) -> i8 { diff --git a/src/logging.rs b/src/logging.rs index 47fb8c7..4a715d4 100644 --- a/src/logging.rs +++ b/src/logging.rs @@ -4,9 +4,9 @@ use std::{str::FromStr, sync::Once}; static INIT: Once = Once::new(); -#[cfg(target_os = "windows")] +#[cfg(windows)] const FILENAME: &str = "ctehxk2.log"; -#[cfg(not(target_os = "windows"))] +#[cfg(unix)] const FILENAME: &str = "libctehxk2.log"; pub fn init() { diff --git a/src/settings.rs b/src/settings.rs index e150730..697d692 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -1,11 +1,10 @@ use config::{Config, Environment, File}; -use failure::Error; use std::path::{Path, MAIN_SEPARATOR}; use url::Url; -#[cfg(target_os = "windows")] +#[cfg(windows)] const CFG_FILE: &str = "ctehxk2"; -#[cfg(not(target_os = "windows"))] +#[cfg(unix)] const CFG_FILE: &str = "libctehxk2"; #[derive(Deserialize)] @@ -20,7 +19,7 @@ pub struct Settings { } impl Settings { - pub fn init() -> Result { + pub fn init() -> anyhow::Result { let mut settings = Config::new(); // set defaults @@ -50,7 +49,7 @@ impl Settings { // force trailing slash for log_path if let Ok(Some(mut path)) = settings.get::>("log_path") { if !Path::new(&path).exists() { - return Err(format_err!("log_path does not exists")); + bail!("log_path does not exists"); } if !path.trim().ends_with(MAIN_SEPARATOR) { @@ -70,7 +69,7 @@ impl Settings { let _ = settings.set("pn", None::); } - settings.try_into().map_err(failure::Error::from) + settings.try_into().map_err(anyhow::Error::from) } } diff --git a/src/tests.rs b/src/tests.rs new file mode 100644 index 0000000..34a5da2 --- /dev/null +++ b/src/tests.rs @@ -0,0 +1,167 @@ +use super::*; +use crate::{ctapi::MAP, Settings, CONFIG}; +use std::collections::HashMap; + +pub fn init_config_clear_map() { + let mut config_guard = CONFIG.write(); + *config_guard = Settings::init().unwrap(); + drop(config_guard); + + let mut map_guard = MAP.write(); + *map_guard = HashMap::new(); + drop(map_guard); +} + +#[test] +#[serial] +fn init() -> anyhow::Result<()> { + let server = test_server::new("127.0.0.1:0", || { + test_server::HttpResponse::Ok().body("hello world") + })?; + std::env::set_var("K2_BASE_URL", server.url()); + init_config_clear_map(); + + let ctn = rand::random::(); + let pn = rand::random::(); + + assert_eq!(-128, CT_init(ctn, pn)); + + Ok(()) +} + +#[test] +#[serial] +fn close_with_error() -> anyhow::Result<()> { + let server = test_server::new("127.0.0.1:0", || { + test_server::HttpResponse::Ok().body("hello world") + })?; + std::env::set_var("K2_BASE_URL", server.url()); + init_config_clear_map(); + + let ctn = rand::random::(); + let pn = rand::random::(); + + let _ = MAP.write().insert(ctn, pn); + + assert_eq!(-128, CT_close(ctn)); + + Ok(()) +} + +#[test] +#[serial] +fn data_with_error() -> anyhow::Result<()> { + let server = test_server::new("127.0.0.1:0", || { + test_server::HttpResponse::Ok().body("hello world") + })?; + std::env::set_var("K2_BASE_URL", server.url()); + + init_config_clear_map(); + + let ctn = rand::random::(); + let pn = rand::random::(); + + let mut dad = rand::random::(); + let mut sad = rand::random::(); + + let commands: [u8; 1] = [rand::random::(); 1]; + let commands_ptr: *const u8 = &commands[0]; + let lenc: u16 = rand::random::(); + + let mut response: [u8; std::u16::MAX as usize] = [rand::random::(); std::u16::MAX as usize]; + let response_ptr: *mut u8 = &mut response[0]; + let mut lenr: u16 = rand::random::(); + + let _ = MAP.write().insert(ctn, pn); + + assert_eq!( + -128, + CT_data( + ctn, + &mut dad, + &mut sad, + lenc, + commands_ptr, + &mut lenr, + response_ptr, + ) + ); + + Ok(()) +} + +#[test] +#[serial] +fn data_null_pointer() -> anyhow::Result<()> { + init_config_clear_map(); + + let ctn = rand::random::(); + let mut dad = rand::random::(); + let mut sad = rand::random::(); + + let commands: [u8; 1] = [rand::random::(); 1]; + let commands_ptr: *const u8 = &commands[0]; + let lenc: u16 = rand::random::(); + + let mut response: [u8; std::u16::MAX as usize] = [rand::random::(); std::u16::MAX as usize]; + let response_ptr: *mut u8 = &mut response[0]; + let mut lenr: u16 = rand::random::(); + + let dad_null: *mut u8 = std::ptr::null_mut(); + assert_eq!( + -128, + CT_data( + ctn, + dad_null, + &mut sad, + lenc, + commands_ptr, + &mut lenr, + response_ptr, + ) + ); + + let sad_null: *mut u8 = std::ptr::null_mut(); + assert_eq!( + -128, + CT_data( + ctn, + &mut dad, + sad_null, + lenc, + commands_ptr, + &mut lenr, + response_ptr, + ) + ); + + let lenr_null: *mut u16 = std::ptr::null_mut(); + assert_eq!( + -128, + CT_data( + ctn, + &mut dad, + &mut sad, + lenc, + commands_ptr, + lenr_null, + response_ptr, + ) + ); + + let response_null: *mut u8 = std::ptr::null_mut(); + assert_eq!( + -128, + CT_data( + ctn, + &mut dad, + &mut sad, + lenc, + commands_ptr, + &mut lenr, + response_null, + ) + ); + + Ok(()) +} diff --git a/tests/negative.rs b/tests/negative.rs new file mode 100644 index 0000000..8f6069c --- /dev/null +++ b/tests/negative.rs @@ -0,0 +1,125 @@ +#[macro_use] +extern crate const_cstr; +#[macro_use] +extern crate serial_test; + +#[cfg(target_os = "windows")] +const LIB_PATH: &str = "./target/debug/ctehxk2.dll"; +#[cfg(target_os = "linux")] +const LIB_PATH: &str = "./target/debug/libctehxk2.so"; +#[cfg(target_os = "macos")] +const LIB_PATH: &str = "./target/debug/libctehxk2.dylib"; + +#[test] +#[serial] +fn init() -> anyhow::Result<()> { + let lib = dlopen::raw::Library::open(LIB_PATH)?; + + let init: unsafe extern "system" fn(u16, u16) -> i8 = + unsafe { lib.symbol_cstr(const_cstr!("CT_init").as_cstr()) }?; + + let ctn = rand::random::(); + let pn = rand::random::(); + + assert_eq!(-128, unsafe { init(ctn, pn) }); + + Ok(()) +} + +#[test] +#[serial] +fn close() -> anyhow::Result<()> { + let lib = dlopen::raw::Library::open(LIB_PATH)?; + + let close: unsafe extern "system" fn(u16) -> i8 = + unsafe { lib.symbol_cstr(const_cstr!("CT_close").as_cstr()) }?; + + let ctn = rand::random::(); + + assert_eq!(-1, unsafe { close(ctn) }); + + Ok(()) +} + +#[test] +#[serial] + +fn data_null_pointer() -> anyhow::Result<()> { + let lib = dlopen::raw::Library::open(LIB_PATH)?; + + let data: unsafe extern "system" fn( + u16, + *mut u8, + *mut u8, + u16, + *const u8, + *mut u16, + *mut u8, + ) -> i8 = unsafe { lib.symbol_cstr(const_cstr!("CT_data").as_cstr()) }?; + + let ctn = rand::random::(); + let mut dad = rand::random::(); + let mut sad = rand::random::(); + + let commands: [u8; 1] = [rand::random::(); 1]; + let commands_ptr: *const u8 = &commands[0]; + let lenc: u16 = rand::random::(); + + let mut response: [u8; std::u16::MAX as usize] = [rand::random::(); std::u16::MAX as usize]; + let response_ptr: *mut u8 = &mut response[0]; + let mut lenr: u16 = rand::random::(); + + let dad_null: *mut u8 = std::ptr::null_mut(); + assert_eq!(-128, unsafe { + data( + ctn, + dad_null, + &mut sad, + lenc, + commands_ptr, + &mut lenr, + response_ptr, + ) + }); + + let sad_null: *mut u8 = std::ptr::null_mut(); + assert_eq!(-128, unsafe { + data( + ctn, + &mut dad, + sad_null, + lenc, + commands_ptr, + &mut lenr, + response_ptr, + ) + }); + + let lenr_null: *mut u16 = std::ptr::null_mut(); + assert_eq!(-128, unsafe { + data( + ctn, + &mut dad, + &mut sad, + lenc, + commands_ptr, + lenr_null, + response_ptr, + ) + }); + + let response_null: *mut u8 = std::ptr::null_mut(); + assert_eq!(-128, unsafe { + data( + ctn, + &mut dad, + &mut sad, + lenc, + commands_ptr, + &mut lenr, + response_null, + ) + }); + + Ok(()) +} diff --git a/tests/integration_tests.rs b/tests/positive.rs similarity index 94% rename from tests/integration_tests.rs rename to tests/positive.rs index 18b0771..1393f1e 100644 --- a/tests/integration_tests.rs +++ b/tests/positive.rs @@ -1,8 +1,9 @@ #[macro_use] extern crate const_cstr; +#[macro_use] +extern crate serial_test; use dlopen::raw::Library; -use failure::Error; use std::u16::MAX; use std::{env, str}; use test_server::{HttpRequest, HttpResponse}; @@ -15,7 +16,8 @@ const LIB_PATH: &str = "./target/debug/libctehxk2.so"; const LIB_PATH: &str = "./target/debug/libctehxk2.dylib"; #[test] -fn use_ct_api_functions() -> Result<(), Error> { +#[serial] +fn init_data_close() -> anyhow::Result<()> { let lib = Library::open(LIB_PATH)?; let init: unsafe extern "system" fn(u16, u16) -> i8 = @@ -75,5 +77,6 @@ fn use_ct_api_functions() -> Result<(), Error> { }); assert_eq!(0, unsafe { close(ctn) }); + env::remove_var("K2_BASE_URL"); Ok(()) }