~vpzom/bracketmonster

51ade40eb9b7ce6932d88e43a806196b29526263 — Colin Reeder 5 months ago dae561e master
brackend: Update more dependencies
M brackend/Cargo.lock => brackend/Cargo.lock +488 -376
@@ 3,6 3,27 @@
version = 3

[[package]]
name = "addr2line"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
dependencies = [
 "gimli",
]

[[package]]
name = "adler"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"

[[package]]
name = "arrayvec"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"

[[package]]
name = "async-trait"
version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 10,7 31,7 @@ checksum = "26c4f3195085c36ea8d24d32b2f828d23296a9370a28aa39d111f6f16bef9f3b"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
 "syn 1.0.23",
]

[[package]]


@@ 20,6 41,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"

[[package]]
name = "backtrace"
version = "0.3.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
dependencies = [
 "addr2line",
 "cc",
 "cfg-if 1.0.0",
 "libc",
 "miniz_oxide",
 "object",
 "rustc-demangle",
]

[[package]]
name = "base64"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 40,7 76,7 @@ dependencies = [
 "base64 0.21.7",
 "blowfish",
 "getrandom 0.2.12",
 "subtle 2.5.0",
 "subtle",
 "zeroize",
]



@@ 63,6 99,15 @@ dependencies = [
]

[[package]]
name = "block-buffer"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
dependencies = [
 "generic-array 0.14.7",
]

[[package]]
name = "block-padding"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 110,6 155,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb"

[[package]]
name = "bumpalo"
version = "3.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"

[[package]]
name = "byte-tools"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 128,6 179,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1"

[[package]]
name = "bytes"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"

[[package]]
name = "cc"
version = "1.0.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
dependencies = [
 "libc",
]

[[package]]
name = "cfg-if"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 156,33 222,23 @@ dependencies = [
]

[[package]]
name = "cloudabi"
version = "0.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
dependencies = [
 "bitflags",
]

[[package]]
name = "crossbeam-queue"
version = "0.2.1"
name = "config"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db"
checksum = "1b1b9d958c2b1368a663f05538fc1b5975adce1e19f435acceae987aceeeb369"
dependencies = [
 "cfg-if 0.1.10",
 "crossbeam-utils",
 "lazy_static",
 "nom",
 "serde",
]

[[package]]
name = "crossbeam-utils"
version = "0.7.2"
name = "cpufeatures"
version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
dependencies = [
 "autocfg",
 "cfg-if 0.1.10",
 "lazy_static",
 "libc",
]

[[package]]


@@ 196,37 252,30 @@ dependencies = [
]

[[package]]
name = "crypto-mac"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5"
dependencies = [
 "generic-array 0.12.3",
 "subtle 1.0.0",
]

[[package]]
name = "deadpool"
version = "0.4.3"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fdfa3a8fd8000fa1679975e37564732e02121c808ba96a3322c76d2a3cb155f2"
checksum = "ef82259c587bceda08349f28ff00f69ae4c897898f254140af6021eb218e8232"
dependencies = [
 "async-trait",
 "crossbeam-queue",
 "futures-intrusive",
 "config",
 "num_cpus",
 "serde",
 "tokio",
]

[[package]]
name = "deadpool-postgres"
version = "0.4.3"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccd8a8b9ff35d09a459af3dcfc7bf11afcfae7c65ea1929816c7603c34815285"
checksum = "f16e5975a5d75607689cfa4e5d1dc6c29a23934afd3ac381686a4e9997e59c7f"
dependencies = [
 "async-trait",
 "config",
 "deadpool",
 "futures",
 "log",
 "serde",
 "tokio",
 "tokio-postgres",
]


@@ 241,6 290,17 @@ dependencies = [
]

[[package]]
name = "digest"
version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
 "block-buffer 0.10.4",
 "crypto-common",
 "subtle",
]

[[package]]
name = "fake-simd"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 259,22 319,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"

[[package]]
name = "fuchsia-zircon"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
dependencies = [
 "bitflags",
 "fuchsia-zircon-sys",
]

[[package]]
name = "fuchsia-zircon-sys"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"

[[package]]
name = "futures"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 291,9 335,9 @@ dependencies = [

[[package]]
name = "futures-channel"
version = "0.3.5"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
dependencies = [
 "futures-core",
 "futures-sink",


@@ 301,9 345,9 @@ dependencies = [

[[package]]
name = "futures-core"
version = "0.3.5"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"

[[package]]
name = "futures-executor"


@@ 317,54 361,39 @@ dependencies = [
]

[[package]]
name = "futures-intrusive"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2c14b89bb14a9ec2f724a8cd9653b83b8e3f7ed510cc6129a36785dfe8cc9f1"
dependencies = [
 "futures-core",
 "lock_api",
 "parking_lot 0.9.0",
]

[[package]]
name = "futures-io"
version = "0.3.5"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"
checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"

[[package]]
name = "futures-macro"
version = "0.3.5"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
 "proc-macro-hack",
 "proc-macro2",
 "quote",
 "syn",
 "syn 2.0.48",
]

[[package]]
name = "futures-sink"
version = "0.3.5"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"

[[package]]
name = "futures-task"
version = "0.3.5"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
dependencies = [
 "once_cell",
]
checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"

[[package]]
name = "futures-util"
version = "0.3.5"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
dependencies = [
 "futures-channel",
 "futures-core",


@@ 373,10 402,8 @@ dependencies = [
 "futures-sink",
 "futures-task",
 "memchr",
 "pin-project",
 "pin-project-lite",
 "pin-utils",
 "proc-macro-hack",
 "proc-macro-nested",
 "slab",
]



@@ 422,23 449,10 @@ dependencies = [
]

[[package]]
name = "h2"
version = "0.2.5"
name = "gimli"
version = "0.28.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79b7246d7e4b979c03fa093da39cfb3617a96bbeee6310af63991668d7e843ff"
dependencies = [
 "bytes",
 "fnv",
 "futures-core",
 "futures-sink",
 "futures-util",
 "http",
 "indexmap",
 "log",
 "slab",
 "tokio",
 "tokio-util",
]
checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"

[[package]]
name = "headers"


@@ 448,7 462,7 @@ checksum = "ed18eb2459bf1a09ad2d6b1547840c3e5e62882fa09b9a6a20b1de8e3228848f"
dependencies = [
 "base64 0.12.1",
 "bitflags",
 "bytes",
 "bytes 0.5.4",
 "headers-core",
 "http",
 "mime",


@@ 466,63 480,80 @@ dependencies = [
]

[[package]]
name = "heck"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"

[[package]]
name = "hermit-abi"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"

[[package]]
name = "hmac"
version = "0.7.1"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695"
checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
dependencies = [
 "crypto-mac",
 "digest",
 "digest 0.10.7",
]

[[package]]
name = "http"
version = "0.2.1"
version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9"
checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
dependencies = [
 "bytes",
 "bytes 1.5.0",
 "fnv",
 "itoa",
 "itoa 1.0.10",
]

[[package]]
name = "http-body"
version = "0.3.1"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b"
checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
dependencies = [
 "bytes",
 "bytes 1.5.0",
 "http",
 "pin-project-lite",
]

[[package]]
name = "httparse"
version = "1.3.4"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"

[[package]]
name = "httpdate"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"

[[package]]
name = "hyper"
version = "0.13.5"
version = "0.14.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96816e1d921eca64d208a85aab4f7798455a8e34229ee5a88c935bdee1b78b14"
checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
dependencies = [
 "bytes",
 "bytes 1.5.0",
 "futures-channel",
 "futures-core",
 "futures-util",
 "h2",
 "http",
 "http-body",
 "httparse",
 "itoa",
 "log",
 "net2",
 "pin-project",
 "time",
 "httpdate",
 "itoa 1.0.10",
 "pin-project-lite",
 "socket2",
 "tokio",
 "tower-service",
 "tracing",
 "want",
]



@@ 539,15 570,6 @@ dependencies = [
]

[[package]]
name = "indexmap"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "076f042c5b7b98f31d205f1249267e12a6518c1481e9dae9764af19b707d2292"
dependencies = [
 "autocfg",
]

[[package]]
name = "inout"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 557,28 579,24 @@ dependencies = [
]

[[package]]
name = "iovec"
version = "0.1.4"
name = "itoa"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
dependencies = [
 "libc",
]
checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"

[[package]]
name = "itoa"
version = "0.4.5"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"
checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"

[[package]]
name = "kernel32-sys"
version = "0.2.2"
name = "js-sys"
version = "0.3.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
dependencies = [
 "winapi 0.2.8",
 "winapi-build",
 "wasm-bindgen",
]

[[package]]


@@ 588,6 606,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"

[[package]]
name = "lexical-core"
version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe"
dependencies = [
 "arrayvec",
 "bitflags",
 "cfg-if 1.0.0",
 "ryu",
 "static_assertions",
]

[[package]]
name = "libc"
version = "0.2.152"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 595,9 626,9 @@ checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"

[[package]]
name = "lock_api"
version = "0.3.4"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b"
dependencies = [
 "scopeguard",
]


@@ 618,22 649,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"

[[package]]
name = "maybe-uninit"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"

[[package]]
name = "md5"
version = "0.7.0"
name = "md-5"
version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
dependencies = [
 "cfg-if 1.0.0",
 "digest 0.10.7",
]

[[package]]
name = "memchr"
version = "2.3.3"
version = "2.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"

[[package]]
name = "mime"


@@ 642,56 671,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"

[[package]]
name = "mio"
version = "0.6.22"
name = "miniz_oxide"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
dependencies = [
 "cfg-if 0.1.10",
 "fuchsia-zircon",
 "fuchsia-zircon-sys",
 "iovec",
 "kernel32-sys",
 "libc",
 "log",
 "miow",
 "net2",
 "slab",
 "winapi 0.2.8",
 "adler",
]

[[package]]
name = "mio-uds"
version = "0.6.8"
name = "mio"
version = "0.8.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
dependencies = [
 "iovec",
 "libc",
 "mio",
]

[[package]]
name = "miow"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
dependencies = [
 "kernel32-sys",
 "net2",
 "winapi 0.2.8",
 "ws2_32-sys",
 "wasi 0.11.0+wasi-snapshot-preview1",
 "windows-sys",
]

[[package]]
name = "net2"
version = "0.2.34"
name = "nom"
version = "5.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7"
checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b"
dependencies = [
 "cfg-if 0.1.10",
 "libc",
 "winapi 0.3.8",
 "lexical-core",
 "memchr",
 "version_check",
]

[[package]]


@@ 736,65 743,57 @@ dependencies = [
]

[[package]]
name = "once_cell"
version = "1.4.0"
name = "num_cpus"
version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
dependencies = [
 "hermit-abi",
 "libc",
]

[[package]]
name = "opaque-debug"
version = "0.2.3"
name = "object"
version = "0.32.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
dependencies = [
 "memchr",
]

[[package]]
name = "parking_lot"
version = "0.9.0"
name = "once_cell"
version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
dependencies = [
 "lock_api",
 "parking_lot_core 0.6.2",
 "rustc_version",
]
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"

[[package]]
name = "parking_lot"
version = "0.10.2"
name = "opaque-debug"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e"
dependencies = [
 "lock_api",
 "parking_lot_core 0.7.2",
]
checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"

[[package]]
name = "parking_lot_core"
version = "0.6.2"
name = "parking_lot"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
dependencies = [
 "cfg-if 0.1.10",
 "cloudabi",
 "libc",
 "redox_syscall",
 "rustc_version",
 "smallvec 0.6.13",
 "winapi 0.3.8",
 "lock_api",
 "parking_lot_core",
]

[[package]]
name = "parking_lot_core"
version = "0.7.2"
version = "0.9.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3"
checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
dependencies = [
 "cfg-if 0.1.10",
 "cloudabi",
 "cfg-if 1.0.0",
 "libc",
 "redox_syscall",
 "smallvec 1.4.0",
 "winapi 0.3.8",
 "smallvec",
 "windows-targets",
]

[[package]]


@@ 805,47 804,27 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"

[[package]]
name = "phf"
version = "0.8.0"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
dependencies = [
 "phf_shared",
]

[[package]]
name = "phf_shared"
version = "0.8.0"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
dependencies = [
 "siphasher",
]

[[package]]
name = "pin-project"
version = "0.4.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edc93aeee735e60ecb40cf740eb319ff23eab1c5748abfdb5c180e4ce49f7791"
dependencies = [
 "pin-project-internal",
]

[[package]]
name = "pin-project-internal"
version = "0.4.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e58db2081ba5b4c93bd6be09c40fd36cb9193a8336c384f3b40012e531aa7e40"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]
name = "pin-project-lite"
version = "0.1.5"
version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7505eeebd78492e0f6108f7171c4948dbb120ee8119d9d77d0afa5469bef67f"
checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"

[[package]]
name = "pin-utils"


@@ 855,40 834,41 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"

[[package]]
name = "postgres-derive"
version = "0.4.0"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c857dd221cb0e7d8414b894a0ce29eae44d453dda0baa132447878e75e701477"
checksum = "83145eba741b050ef981a9a1838c843fa7665e154383325aa8b440ae703180a2"
dependencies = [
 "heck",
 "proc-macro2",
 "quote",
 "syn",
 "syn 2.0.48",
]

[[package]]
name = "postgres-protocol"
version = "0.5.1"
version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f611afe4d1407ebe7f3ced1ffc66f730fac1b1c13085e230a8cdcb921e97710"
checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520"
dependencies = [
 "base64 0.12.1",
 "base64 0.21.7",
 "byteorder",
 "bytes",
 "bytes 1.5.0",
 "fallible-iterator",
 "hmac",
 "md5",
 "md-5",
 "memchr",
 "rand 0.7.3",
 "rand 0.8.5",
 "sha2",
 "stringprep",
]

[[package]]
name = "postgres-types"
version = "0.1.1"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e634590e8812c500088d88db721195979223dabb05149f43cb50931d0ff5865d"
checksum = "8d2234cdee9408b523530a9b6d2d6b373d1db34f6a8e51dc03ded1828d7fb67c"
dependencies = [
 "bytes",
 "bytes 1.5.0",
 "fallible-iterator",
 "postgres-derive",
 "postgres-protocol",


@@ 904,24 884,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"

[[package]]
name = "proc-macro-hack"
version = "0.5.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d659fe7c6d27f25e9d80a1a094c223f5246f6a6596453e09d7229bf42750b63"

[[package]]
name = "proc-macro-nested"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e946095f9d3ed29ec38de908c22f95d9ac008e424c7bcae54c75a79c527c694"

[[package]]
name = "proc-macro2"
version = "1.0.13"
version = "1.0.76"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53f5ffe53a6b28e37c9c1ce74893477864d64f74778a93a4beb43c8fa167f639"
checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
dependencies = [
 "unicode-xid",
 "unicode-ident",
]

[[package]]


@@ 936,9 904,9 @@ dependencies = [

[[package]]
name = "quote"
version = "1.0.6"
version = "1.0.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54a21852a652ad6f610c9510194f398ff6f8692e334fd1145fed931f7fbe44ea"
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
dependencies = [
 "proc-macro2",
]


@@ 1016,18 984,18 @@ dependencies = [

[[package]]
name = "redox_syscall"
version = "0.1.56"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
dependencies = [
 "bitflags",
]

[[package]]
name = "rustc_version"
version = "0.2.3"
name = "rustc-demangle"
version = "0.1.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
dependencies = [
 "semver",
]
checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"

[[package]]
name = "ryu"


@@ 1042,25 1010,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"

[[package]]
name = "semver"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
dependencies = [
 "semver-parser",
]

[[package]]
name = "semver-parser"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"

[[package]]
name = "serde"
version = "1.0.110"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99e7b308464d16b56eba9964e4972a3eee817760ab60d88c3f86e1fecb08204c"
dependencies = [
 "serde_derive",
]

[[package]]
name = "serde_derive"


@@ 1070,7 1026,7 @@ checksum = "818fbf6bfa9a42d3bfcaca148547aa00c7b915bec71d1757aa2d44ca68771984"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
 "syn 1.0.23",
]

[[package]]


@@ 1079,7 1035,7 @@ version = "1.0.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "993948e75b189211a9b31a7528f950c6adc21f9720b6438ff80a7fa2f864cea2"
dependencies = [
 "itoa",
 "itoa 0.4.5",
 "ryu",
 "serde",
]


@@ 1090,22 1046,21 @@ version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
dependencies = [
 "block-buffer",
 "digest",
 "block-buffer 0.7.3",
 "digest 0.8.1",
 "fake-simd",
 "opaque-debug",
]

[[package]]
name = "sha2"
version = "0.8.1"
version = "0.10.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27044adfd2e1f077f649f59deb9490d3941d674002f7d062870a60ebe9bd47a0"
checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
dependencies = [
 "block-buffer",
 "digest",
 "fake-simd",
 "opaque-debug",
 "cfg-if 1.0.0",
 "cpufeatures",
 "digest 0.10.7",
]

[[package]]


@@ 1122,18 1077,25 @@ checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"

[[package]]
name = "smallvec"
version = "0.6.13"
version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2593d31f82ead8df961d8bd23a64c2ccf2eb5dd34b0a34bfb4dd54011c72009e"

[[package]]
name = "socket2"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
dependencies = [
 "maybe-uninit",
 "libc",
 "windows-sys",
]

[[package]]
name = "smallvec"
version = "1.4.0"
name = "static_assertions"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"

[[package]]
name = "stringprep"


@@ 1147,12 1109,6 @@ dependencies = [

[[package]]
name = "subtle"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"

[[package]]
name = "subtle"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"


@@ 1169,80 1125,92 @@ dependencies = [
]

[[package]]
name = "syn"
version = "2.0.48"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
dependencies = [
 "proc-macro2",
 "quote",
 "unicode-ident",
]

[[package]]
name = "time"
version = "0.1.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
dependencies = [
 "libc",
 "winapi 0.3.8",
 "winapi",
]

[[package]]
name = "tokio"
version = "0.2.21"
version = "1.35.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d099fa27b9702bed751524694adbe393e18b36b204da91eb1cbbbbb4a5ee2d58"
checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
dependencies = [
 "bytes",
 "fnv",
 "futures-core",
 "iovec",
 "lazy_static",
 "backtrace",
 "bytes 1.5.0",
 "libc",
 "memchr",
 "mio",
 "mio-uds",
 "num_cpus",
 "pin-project-lite",
 "slab",
 "socket2",
 "tokio-macros",
 "windows-sys",
]

[[package]]
name = "tokio-macros"
version = "0.2.5"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0c3acc6aa564495a0f2e1d59fab677cd7f81a19994cfc7f3ad0e64301560389"
checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
 "syn 2.0.48",
]

[[package]]
name = "tokio-postgres"
version = "0.5.4"
version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d56010a704311361b7c9e870aaa4ddffaf9f2db89cbcf3e14773ac8a14469c9c"
checksum = "d340244b32d920260ae7448cb72b6e238bddc3d4f7603394e7dd46ed8e48f5b8"
dependencies = [
 "async-trait",
 "byteorder",
 "bytes",
 "bytes 1.5.0",
 "fallible-iterator",
 "futures",
 "futures-channel",
 "futures-util",
 "log",
 "parking_lot 0.10.2",
 "parking_lot",
 "percent-encoding",
 "phf",
 "pin-project-lite",
 "postgres-protocol",
 "postgres-types",
 "rand 0.8.5",
 "socket2",
 "tokio",
 "tokio-util",
 "whoami",
]

[[package]]
name = "tokio-util"
version = "0.3.1"
version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499"
checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
dependencies = [
 "bytes",
 "bytes 1.5.0",
 "futures-core",
 "futures-sink",
 "log",
 "pin-project-lite",
 "tokio",
 "tracing",
]

[[package]]


@@ 1252,12 1220,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"

[[package]]
name = "tracing"
version = "0.1.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
dependencies = [
 "pin-project-lite",
 "tracing-core",
]

[[package]]
name = "tracing-core"
version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
dependencies = [
 "once_cell",
]

[[package]]
name = "trout"
version = "0.1.0"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a33a6998422e804d948d5c9f6f44da16a75f2412465ff2148235792b696283f"
checksum = "96ee463312333d0717c7707485a447605398f639e5f4d0f188856c374b02ba6a"
dependencies = [
 "hyper",
 "http",
 "percent-encoding",
]

[[package]]


@@ 1282,12 1270,18 @@ dependencies = [
]

[[package]]
name = "unicode-ident"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"

[[package]]
name = "unicode-normalization"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
dependencies = [
 "smallvec 1.4.0",
 "smallvec",
]

[[package]]


@@ 1334,10 1328,78 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"

[[package]]
name = "winapi"
version = "0.2.8"
name = "wasm-bindgen"
version = "0.2.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
dependencies = [
 "cfg-if 1.0.0",
 "wasm-bindgen-macro",
]

[[package]]
name = "wasm-bindgen-backend"
version = "0.2.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
dependencies = [
 "bumpalo",
 "log",
 "once_cell",
 "proc-macro2",
 "quote",
 "syn 2.0.48",
 "wasm-bindgen-shared",
]

[[package]]
name = "wasm-bindgen-macro"
version = "0.2.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
dependencies = [
 "quote",
 "wasm-bindgen-macro-support",
]

[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
dependencies = [
 "proc-macro2",
 "quote",
 "syn 2.0.48",
 "wasm-bindgen-backend",
 "wasm-bindgen-shared",
]

[[package]]
name = "wasm-bindgen-shared"
version = "0.2.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"

[[package]]
name = "web-sys"
version = "0.3.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed"
dependencies = [
 "js-sys",
 "wasm-bindgen",
]

[[package]]
name = "whoami"
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50"
dependencies = [
 "wasm-bindgen",
 "web-sys",
]

[[package]]
name = "winapi"


@@ 1350,12 1412,6 @@ dependencies = [
]

[[package]]
name = "winapi-build"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"

[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 1368,16 1424,72 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"

[[package]]
name = "ws2_32-sys"
version = "0.2.1"
name = "windows-sys"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
dependencies = [
 "winapi 0.2.8",
 "winapi-build",
 "windows-targets",
]

[[package]]
name = "windows-targets"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
dependencies = [
 "windows_aarch64_gnullvm",
 "windows_aarch64_msvc",
 "windows_i686_gnu",
 "windows_i686_msvc",
 "windows_x86_64_gnu",
 "windows_x86_64_gnullvm",
 "windows_x86_64_msvc",
]

[[package]]
name = "windows_aarch64_gnullvm"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"

[[package]]
name = "windows_aarch64_msvc"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"

[[package]]
name = "windows_i686_gnu"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"

[[package]]
name = "windows_i686_msvc"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"

[[package]]
name = "windows_x86_64_gnu"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"

[[package]]
name = "windows_x86_64_gnullvm"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"

[[package]]
name = "windows_x86_64_msvc"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"

[[package]]
name = "zeroize"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"

M brackend/Cargo.toml => brackend/Cargo.toml +6 -6
@@ 7,12 7,12 @@ edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
deadpool-postgres = "0.4.1"
tokio-postgres = { version = "0.5.1", features = ["with-uuid-0_8", "with-serde_json-1"] }
deadpool-postgres = "0.8.1"
tokio-postgres = { version = "0.7.9", features = ["with-uuid-0_8", "with-serde_json-1"] }
serde_json = "1.0.42"
tokio = { version = "0.2.6", features = ["macros"] }
tokio = { version = "1.35.1", features = ["macros", "rt-multi-thread"] }
uuid = { version = "0.8", features = ["v4"] }
hyper = "0.13.1"
hyper = { version = "0.14.9", features = ["http1", "server", "tcp"] }
serde = "1.0.103"
serde_derive = "1.0.103"
futures = "0.3.1"


@@ 21,5 21,5 @@ rand = "0.8.5"
headers = "0.3.0"
qrcode = "0.11.1"
bcrypt = "0.15.0"
postgres-types = { version = "0.1.1", features = ["derive"] }
trout = "0.1.0"
postgres-types = { version = "0.2.6", features = ["derive"] }
trout = "0.4.0"

M brackend/src/main.rs => brackend/src/main.rs +6 -3
@@ 1,11 1,11 @@
use headers::Header;
use std::sync::Arc;
use trout::hyper::RoutingFailureExtHyper;
use trout::http02::RoutingFailureExtHttp;

mod bracket_utils;
mod routes;

type DbPool = deadpool_postgres::Pool;
type DbPool = deadpool_postgres::Pool<tokio_postgres::NoTls>;
pub type UserID = i32;

#[derive(Debug, Clone, Copy)]


@@ 182,7 182,10 @@ async fn require_login(
        })
}

fn simple_response(code: hyper::StatusCode, text: impl Into<hyper::Body>) -> hyper::Response<hyper::Body> {
fn simple_response(
    code: hyper::StatusCode,
    text: impl Into<hyper::Body>,
) -> hyper::Response<hyper::Body> {
    let mut res = hyper::Response::new(text.into());
    *res.status_mut() = code;
    res

M brackend/src/routes/unstable/mod.rs => brackend/src/routes/unstable/mod.rs +8 -7
@@ 1,19 1,20 @@
use crate::{
    report_parse_error, to_200, BracketID, DbPool, Error, UserID,
};
use crate::{report_parse_error, to_200, BracketID, DbPool, Error, UserID};

pub fn route_unstable() -> crate::RouteNode<()> {
    let route_brackets = crate::RouteNode::new().with_child_parse::<BracketID, _>(
        crate::RouteNode::new().with_child(
            "linkQr",
            crate::RouteNode::new().with_handler_async("GET", |(bracket_id,), ctx, _| async move {
                route_brackets_linkqr_fn(bracket_id, &ctx.frontend_host).await
            }),
            crate::RouteNode::new().with_handler_async(
                hyper::Method::GET,
                |(bracket_id,), ctx, _| async move {
                    route_brackets_linkqr_fn(bracket_id, &ctx.frontend_host).await
                },
            ),
        ),
    );

    let route_login_sessions =
        crate::RouteNode::new().with_handler_async("POST", |_, ctx, req| async move {
        crate::RouteNode::new().with_handler_async(hyper::Method::POST, |_, ctx, req| async move {
            route_login_sessions_create_fn(req, ctx.db_pool.clone())
                .await
                .map(|v| to_200(&v))

M brackend/src/routes/v1/brackets.rs => brackend/src/routes/v1/brackets.rs +13 -9
@@ 9,29 9,33 @@ use std::collections::HashMap;
use std::ops::Deref;

pub fn route_brackets() -> crate::RouteNode<()> {
    let route_match =
        crate::RouteNode::new().with_handler_async("PATCH", |(_, match_id), ctx, req| async move {
    let route_match = crate::RouteNode::new().with_handler_async(
        hyper::Method::PATCH,
        |(_, match_id), ctx, req| async move {
            route_bracket_matches_edit(req, ctx.db_pool.clone(), match_id)
                .await
                .map(to_204)
        });
        },
    );

    let route_matches = crate::RouteNode::new().with_child_parse::<i32, _>(route_match);

    let route_your =
        crate::RouteNode::new().with_handler_async("GET", |(bracket_id,), ctx, req| async move {
    let route_your = crate::RouteNode::new().with_handler_async(
        hyper::Method::GET,
        |(bracket_id,), ctx, req| async move {
            route_brackets_your_get_fn(req, ctx.db_pool.clone(), bracket_id)
                .await
                .map(|v| to_200(&v))
        });
        },
    );

    let route_bracket = crate::RouteNode::new()
        .with_handler_async("GET", |(bracket_id,), ctx, _| async move {
        .with_handler_async(hyper::Method::GET, |(bracket_id,), ctx, _| async move {
            route_brackets_get_fn(ctx.db_pool.clone(), bracket_id)
                .await
                .map(|v| to_200(&v))
        })
        .with_handler_async("PATCH", |(bracket_id,), ctx, req| async move {
        .with_handler_async(hyper::Method::PATCH, |(bracket_id,), ctx, req| async move {
            route_brackets_edit_fn(req, ctx.db_pool.clone(), bracket_id)
                .await
                .map(to_204)


@@ 40,7 44,7 @@ pub fn route_brackets() -> crate::RouteNode<()> {
        .with_child("matches", route_matches);

    crate::RouteNode::new()
        .with_handler_async("POST", |_, ctx, req| async move {
        .with_handler_async(hyper::Method::POST, |_, ctx, req| async move {
            route_brackets_create_fn(req, ctx.db_pool.clone())
                .await
                .map(|v| to_200(&v))

M brackend/src/routes/v1/users.rs => brackend/src/routes/v1/users.rs +30 -19
@@ 1,4 1,7 @@
use crate::{report_parse_error, require_login, simple_response, to_200, to_204, BracketID, BracketType, DbPool, Error, LoginError, UserID};
use crate::{
    report_parse_error, require_login, simple_response, to_200, to_204, BracketID, BracketType,
    DbPool, Error, LoginError, UserID,
};

#[derive(Debug, Clone, Copy)]
enum UserIDOrMe {


@@ 34,7 37,10 @@ async fn require_me(user: UserIDOrMe, me: UserID) -> Result<(), Error> {
            if user == me {
                Ok(())
            } else {
                Err(Error::UserError(simple_response(hyper::StatusCode::FORBIDDEN, "You are not authorized to do this")))
                Err(Error::UserError(simple_response(
                    hyper::StatusCode::FORBIDDEN,
                    "You are not authorized to do this",
                )))
            }
        }
    }


@@ 47,20 53,22 @@ fn is_allowed_username(username: &str) -> bool {
}

pub fn route_users() -> crate::RouteNode<()> {
    let route_brackets = crate::RouteNode::new()
        .with_handler_async("GET", |(user,), ctx, req| async move {
    let route_brackets = crate::RouteNode::new().with_handler_async(
        hyper::Method::GET,
        |(user,), ctx, req| async move {
            route_users_brackets_list_fn(ctx.db_pool.clone(), req, user)
                .await
                .map(|v| to_200(&v))
        });
        },
    );

    let route_user =
        crate::RouteNode::new().with_handler_async("PATCH", |(user,), ctx, req| async move {
    let route_user = crate::RouteNode::new()
        .with_handler_async(hyper::Method::PATCH, |(user,), ctx, req| async move {
            route_users_edit_fn(ctx.db_pool.clone(), req, user)
                .await
                .map(to_204)
        })
        .with_handler_async("GET", |(user,), ctx, req| async move {
        .with_handler_async(hyper::Method::GET, |(user,), ctx, req| async move {
            route_users_get_fn(ctx.db_pool.clone(), req, user)
                .await
                .map(|v| to_200(&v))


@@ 68,7 76,7 @@ pub fn route_users() -> crate::RouteNode<()> {
        .with_child("brackets", route_brackets);

    crate::RouteNode::new()
        .with_handler_async("POST", |_, ctx, req| async move {
        .with_handler_async(hyper::Method::POST, |_, ctx, req| async move {
            route_users_create_fn(ctx.db_pool.clone(), req)
                .await
                .map(|v| to_200(&v))


@@ 98,7 106,10 @@ async fn route_users_create_fn(

    let (user_id, username): (i32, _) = match if let Some(username) = body.username {
        if !is_allowed_username(&username) {
            return Err(Error::UserError(crate::simple_response(hyper::StatusCode::BAD_REQUEST, "Invalid characters in username")));
            return Err(Error::UserError(crate::simple_response(
                hyper::StatusCode::BAD_REQUEST,
                "Invalid characters in username",
            )));
        }

        if let Some(password) = body.password {


@@ 165,22 176,22 @@ async fn route_users_get_fn(
                .map_err(LoginError::to_user)?;

            match user {
                None => {
                    Err(Error::UserError({
                        let mut res = hyper::Response::new("You are not logged in".into());
                        *res.status_mut() = hyper::StatusCode::UNAUTHORIZED;
                        res
                    }))
                },
                None => Err(Error::UserError({
                    let mut res = hyper::Response::new("You are not logged in".into());
                    *res.status_mut() = hyper::StatusCode::UNAUTHORIZED;
                    res
                })),
                Some(user) => Ok(user),
            }?
        },
        }
        UserIDOrMe::UserID(user) => user,
    };

    let client = db_pool.get().await?;

    let row = client.query_opt("SELECT username FROM users WHERE id=$1", &[&user]).await?;
    let row = client
        .query_opt("SELECT username FROM users WHERE id=$1", &[&user])
        .await?;

    match row {
        None => Err(Error::UserError({