From d66aea96115eeff5fe0bb8df37223bc43680896b Mon Sep 17 00:00:00 2001 From: Palmer Cox Date: Fri, 30 Sep 2022 18:08:22 -0400 Subject: [PATCH 1/5] Update from structopt to Clap v4 We also had to update reqwest or we ran into a dependency conflict with proc_macro2. --- Cargo.lock | 331 ++++++++++++++++++++------------------ Cargo.toml | 4 +- src/commands/cloud.rs | 12 +- src/main.rs | 151 ++++++++--------- src/utils/cloud_config.rs | 43 ++--- src/utils/load_ranges.rs | 6 +- 6 files changed, 279 insertions(+), 268 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5e4a889..0fa088d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,5 +1,7 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "aho-corasick" version = "0.7.15" @@ -9,15 +11,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "ansi_term" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" -dependencies = [ - "winapi", -] - [[package]] name = "anyhow" version = "1.0.38" @@ -37,9 +30,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "base64" @@ -126,13 +119,46 @@ version = "2.33.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" dependencies = [ - "ansi_term", - "atty", "bitflags", - "strsim", "textwrap", "unicode-width", - "vec_map", +] + +[[package]] +name = "clap" +version = "4.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a1af219c3e254a8b4649d6ddaef886b2015089f35f2ac5e1db31410c0566ab8" +dependencies = [ + "atty", + "bitflags", + "clap_derive", + "clap_lex", + "once_cell", + "strsim", + "termcolor", +] + +[[package]] +name = "clap_derive" +version = "4.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd114ae53ce5a0670f43d2f169c1cd26c69b4896b0c121900cf1e4d06d67316c" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_lex" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" +dependencies = [ + "os_str_bytes", ] [[package]] @@ -159,7 +185,7 @@ checksum = "ab327ed7354547cc2ef43cbe20ef68b988e70b4b593cbd66a2a61733123a3d23" dependencies = [ "atty", "cast", - "clap", + "clap 2.33.3", "criterion-plot", "csv", "itertools 0.10.0", @@ -240,7 +266,7 @@ checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1" dependencies = [ "bstr", "csv-core", - "itoa", + "itoa 0.4.7", "ryu", "serde", ] @@ -356,14 +382,14 @@ checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.10.2+wasi-snapshot-preview1", ] [[package]] name = "h2" -version = "0.3.1" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d832b01df74254fe364568d6ddc294443f61cbec82816b60904303af87efae78" +checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" dependencies = [ "bytes", "fnv", @@ -392,12 +418,9 @@ checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" [[package]] name = "heck" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" -dependencies = [ - "unicode-segmentation", -] +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" [[package]] name = "hermit-abi" @@ -416,7 +439,7 @@ checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747" dependencies = [ "bytes", "fnv", - "itoa", + "itoa 0.4.7", ] [[package]] @@ -431,21 +454,21 @@ dependencies = [ [[package]] name = "httparse" -version = "1.3.5" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "615caabe2c3160b313d52ccc905335f4ed5f10881dd63dc5699d47e90be85691" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "0.3.2" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" [[package]] name = "hyper" -version = "0.14.4" +version = "0.14.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8e946c2b1349055e0b72ae281b238baf1a3ea7307c7e9f9d64673bdd9c26ac7" +checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" dependencies = [ "bytes", "futures-channel", @@ -456,8 +479,8 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa", - "pin-project", + "itoa 1.0.3", + "pin-project-lite", "socket2", "tokio", "tower-service", @@ -529,6 +552,12 @@ version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" +[[package]] +name = "itoa" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" + [[package]] name = "js-sys" version = "0.3.48" @@ -546,9 +575,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.88" +version = "0.2.134" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b07a082330a35e43f63177cc01689da34fbffa0105e1246cf0311472cac73a" +checksum = "329c933548736bc49fd575ee68c89e8be4d260064184389a5b77517cddd99ffb" [[package]] name = "libnetrangemerge" @@ -596,32 +625,21 @@ checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" [[package]] name = "mio" -version = "0.7.9" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5dede4e2065b3842b8b0af444119f3aa331cc7cc2dd20388bfb0f5d5a38823a" +checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" dependencies = [ "libc", "log", - "miow", - "ntapi", - "winapi", -] - -[[package]] -name = "miow" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897" -dependencies = [ - "socket2", - "winapi", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys", ] [[package]] name = "native-tls" -version = "0.2.7" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8d96b2e1c8da3957d58100b09f102c6d9cfdfced01b7ec5a8974044bb09dbd4" +checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" dependencies = [ "lazy_static", "libc", @@ -641,6 +659,7 @@ version = "0.5.0" dependencies = [ "anyhow", "cidr", + "clap 4.0.7", "csv", "libnetrangemerge", "once_cell", @@ -649,16 +668,6 @@ dependencies = [ "rlua", "serde", "serde_json", - "structopt", -] - -[[package]] -name = "ntapi" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" -dependencies = [ - "winapi", ] [[package]] @@ -682,9 +691,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.7.2" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3" +checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" [[package]] name = "oorandom" @@ -726,30 +735,16 @@ dependencies = [ ] [[package]] -name = "percent-encoding" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" - -[[package]] -name = "pin-project" -version = "1.0.5" +name = "os_str_bytes" +version = "6.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96fa8ebb90271c4477f144354485b8068bd8f6b78b428b01ba892ca26caf0b63" -dependencies = [ - "pin-project-internal", -] +checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" [[package]] -name = "pin-project-internal" -version = "1.0.5" +name = "percent-encoding" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "758669ae3558c6f74bd2a18b41f7ac0b5a195aea6639d6a9b5e5d1ad5ba24c0b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" [[package]] name = "pin-project-lite" @@ -829,11 +824,11 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.24" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" +checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b" dependencies = [ - "unicode-xid", + "unicode-ident", ] [[package]] @@ -957,31 +952,34 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.2" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf12057f289428dbf5c591c74bf10392e4a8003f993405a902f20117019022d4" +checksum = "431949c384f4e2ae07605ccaa56d1d9d2ecdb5cadd4f9577ccfab29f2e5149fc" dependencies = [ "base64", "bytes", "encoding_rs", "futures-core", "futures-util", + "h2", "http", "http-body", "hyper", "hyper-tls", "ipnet", "js-sys", - "lazy_static", "log", "mime", "native-tls", + "once_cell", "percent-encoding", "pin-project-lite", "serde", + "serde_json", "serde_urlencoded", "tokio", "tokio-native-tls", + "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", @@ -1116,19 +1114,19 @@ version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" dependencies = [ - "itoa", + "itoa 0.4.7", "ryu", "serde", ] [[package]] name = "serde_urlencoded" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa", + "itoa 1.0.3", "ryu", "serde", ] @@ -1141,54 +1139,29 @@ checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" [[package]] name = "socket2" -version = "0.3.19" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" dependencies = [ - "cfg-if", "libc", "winapi", ] [[package]] name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - -[[package]] -name = "structopt" -version = "0.3.21" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c" -dependencies = [ - "clap", - "lazy_static", - "structopt-derive", -] - -[[package]] -name = "structopt-derive" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90" -dependencies = [ - "heck", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" -version = "1.0.63" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd9bc7ccc2688b3344c2f48b9b546648b25ce0b20fc717ee7fa7981a8ca9717" +checksum = "e90cde112c4b9690b8cbe810cba9ddd8bc1d7472e2cae317b69e9438c1cba7d2" dependencies = [ "proc-macro2", "quote", - "unicode-xid", + "unicode-ident", ] [[package]] @@ -1205,6 +1178,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + [[package]] name = "textwrap" version = "0.11.0" @@ -1250,9 +1232,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.3.0" +version = "1.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d56477f6ed99e10225f38f9f75f872f29b8b8bd8c0b946f63345bb144e9eeda" +checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" dependencies = [ "autocfg", "bytes", @@ -1261,6 +1243,8 @@ dependencies = [ "mio", "num_cpus", "pin-project-lite", + "socket2", + "winapi", ] [[package]] @@ -1275,16 +1259,16 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.6.4" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec31e5cc6b46e653cf57762f36f71d5e6386391d88a72fd6db4508f8f676fb29" +checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" dependencies = [ "bytes", "futures-core", "futures-sink", - "log", "pin-project-lite", "tokio", + "tracing", ] [[package]] @@ -1328,6 +1312,12 @@ dependencies = [ "matches", ] +[[package]] +name = "unicode-ident" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" + [[package]] name = "unicode-normalization" version = "0.1.17" @@ -1337,24 +1327,12 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-segmentation" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" - [[package]] name = "unicode-width" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" -[[package]] -name = "unicode-xid" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" - [[package]] name = "url" version = "2.2.1" @@ -1373,17 +1351,11 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - [[package]] name = "version_check" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" @@ -1412,6 +1384,12 @@ version = "0.10.2+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + [[package]] name = "wasm-bindgen" version = "0.2.71" @@ -1419,8 +1397,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ee1280240b7c461d6a0071313e08f34a60b0365f14260362e5a2b17d1d31aa7" dependencies = [ "cfg-if", - "serde", - "serde_json", "wasm-bindgen-macro", ] @@ -1521,11 +1497,54 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-sys" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +dependencies = [ + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" + [[package]] name = "winreg" -version = "0.7.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" dependencies = [ "winapi", ] diff --git a/Cargo.toml b/Cargo.toml index 15ab6fe..4ea5ceb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,8 +25,8 @@ rlua = "0.17.0" serde = { version = "1.0.123", features = ["derive"] } serde_json = "1.0.62" libnetrangemerge = { path = "libnetrangemerge", version = "0.1.0" } -structopt = "0.3.21" -reqwest = { version = "0.11.2", features = ["blocking"] } +clap = { version = "4", features = ["derive"] } +reqwest = { version = "0.11.12", features = ["blocking"] } regex = "1.4.3" cidr = "0.1.1" once_cell = "1.7.2" diff --git a/src/commands/cloud.rs b/src/commands/cloud.rs index ebab2ad..f930a92 100644 --- a/src/commands/cloud.rs +++ b/src/commands/cloud.rs @@ -9,14 +9,14 @@ use anyhow::Error; use std::io; pub fn cloud_get_command(options: CloudGetOptions) -> Result<(), Error> { - let func = get_cloud_config(&options.service)?.fetch_ranges_func; + let func = get_cloud_config(options.service)?.fetch_ranges_func; let mut response = func()?; io::copy(&mut response, &mut io::stdout().lock())?; Ok(()) } pub fn cloud_merge_command(options: CloudMergeOptions) -> Result<(), Error> { - let ranges = load_cloud_ranges(&options.service, options.file)?; + let ranges = load_cloud_ranges(options.service, options.file)?; cloud_process_ranges( ranges, @@ -34,7 +34,7 @@ pub fn cloud_merge_command(options: CloudMergeOptions) -> Result<(), Error> { } pub fn cloud_get_merge_command(options: CloudGetMergeOptions) -> Result<(), Error> { - let ranges = fetch_and_load_cloud_ranges(&options.service)?; + let ranges = fetch_and_load_cloud_ranges(options.service)?; cloud_process_ranges( ranges, @@ -52,7 +52,7 @@ pub fn cloud_get_merge_command(options: CloudGetMergeOptions) -> Result<(), Erro } pub fn cloud_read_command(options: CloudReadOptions) -> Result<(), Error> { - let ranges = load_cloud_ranges(&options.service, options.file)?; + let ranges = load_cloud_ranges(options.service, options.file)?; cloud_process_ranges( ranges, @@ -70,7 +70,7 @@ pub fn cloud_read_command(options: CloudReadOptions) -> Result<(), Error> { } pub fn cloud_get_read_command(options: CloudGetReadOptions) -> Result<(), Error> { - let ranges = fetch_and_load_cloud_ranges(&options.service)?; + let ranges = fetch_and_load_cloud_ranges(options.service)?; cloud_process_ranges( ranges, @@ -88,6 +88,6 @@ pub fn cloud_get_read_command(options: CloudGetReadOptions) -> Result<(), Error> } pub fn cloud_filter_help_command(options: CloudFilterHelpOptions) -> Result<(), Error> { - println!("{}", get_cloud_config(&options.service)?.filter_help.trim()); + println!("{}", get_cloud_config(options.service)?.filter_help.trim()); Ok(()) } diff --git a/src/main.rs b/src/main.rs index 1f9f93a..a5720a1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,20 +7,20 @@ use crate::commands::cloud::{ cloud_merge_command, cloud_read_command, }; use crate::commands::merge::merge_command; -use crate::utils::cloud_config::get_cloud_names; +use crate::utils::cloud_config::CloudName; use anyhow::Error; use std::path::PathBuf; -use structopt::StructOpt; +use clap::{Parser, Args, Subcommand}; /// Download the source file that contains the IP ranges that the service uses. /// /// Many, but not all, cloud services use a JSON formatted file to provide /// the IP ranges that they use. -#[derive(Debug, StructOpt)] +#[derive(Debug, Args)] pub struct CloudGetOptions { /// Cloud service - #[structopt(possible_values = get_cloud_names())] - pub service: String, + #[arg(value_enum)] + pub service: CloudName, } /// Load IP ranges for the service, merge adjacent ranges, and output to STDOUT. @@ -41,30 +41,30 @@ pub struct CloudGetOptions { /// downloaded such as with the "cloud get " command. You may /// download and merge in just a single command by using the /// "cloud get-merge " command instead. -#[derive(Debug, StructOpt)] +#[derive(Debug, Args)] pub struct CloudMergeOptions { /// Cloud service - #[structopt(possible_values = get_cloud_names())] - pub service: String, + #[arg(value_enum)] + pub service: CloudName, /// File to load the ip ranges from. STDIN is used if /// file is "-". pub file: PathBuf, /// Lua filter program to filter the ranges of interest. - #[structopt(long, conflicts_with = "filter-file")] + #[arg(long, conflicts_with = "filter_file")] pub filter: Option, /// Path of a file containing a Lua program to filter the ranges of interest. - #[structopt(long)] + #[arg(long)] pub filter_file: Option, /// Lua filter program to select the ranges of interest. - #[structopt(long, conflicts_with = "select-file")] + #[arg(long, conflicts_with = "select_file")] pub select: Option, /// Path of a file containing a Lua program to select the ranges of interest. - #[structopt(long)] + #[arg(long)] pub select_file: Option, /// Extra ranges that may be helpful to minimize the set @@ -73,7 +73,7 @@ pub struct CloudMergeOptions { /// The file should contain a single CIDR range per line. /// These ranges will be used to minimize the main set in the same way /// that non-selected ranges are. - #[structopt(name = "extra-ranges-file", long)] + #[arg(name = "extra-ranges-file", long)] pub extra_ranges_files: Vec, /// A minimum ipv4 network size. @@ -81,7 +81,7 @@ pub struct CloudMergeOptions { /// Any ranges smaller that this size are automatically /// increased to this size. This option may help minimize the size of the output /// network ranges. - #[structopt(long)] + #[arg(long)] pub min_ipv4_network_size: Option, /// A minimum ipv6 network size. @@ -89,7 +89,7 @@ pub struct CloudMergeOptions { /// Any ranges smaller that this size are automatically /// increased to this size. This option may help minimize the size of the output /// network ranges. - #[structopt(long)] + #[arg(long)] pub min_ipv6_network_size: Option, } @@ -112,26 +112,26 @@ pub struct CloudMergeOptions { /// times. In such a case, you may want to consider using "cloud get " /// to download the file once and then use "cloud merge " to process /// the already downloaded file. -#[derive(Debug, StructOpt)] +#[derive(Debug, Args)] pub struct CloudGetMergeOptions { /// Cloud service - #[structopt(possible_values = get_cloud_names())] - pub service: String, + #[arg(value_enum)] + pub service: CloudName, /// Lua filter program to filter the ranges of interest. - #[structopt(long, conflicts_with = "filter-file")] + #[arg(long, conflicts_with = "filter_file")] pub filter: Option, /// Path of a file containing a Lua program to filter the ranges of interest. - #[structopt(long)] + #[arg(long)] pub filter_file: Option, /// Lua filter program to select the ranges of interest. - #[structopt(long, conflicts_with = "select-file")] + #[arg(long, conflicts_with = "select_file")] pub select: Option, /// Path of a file containing a Lua program to select the ranges of interest. - #[structopt(long)] + #[arg(long)] pub select_file: Option, /// Extra ranges that may be helpful to minimize the set @@ -140,7 +140,7 @@ pub struct CloudGetMergeOptions { /// The file should contain a single CIDR range per line. /// These ranges will be used to minimize the main set in the same way /// that non-selected ranges are. - #[structopt(name = "extra-ranges-file", long)] + #[arg(name = "extra-ranges-file", long)] pub extra_ranges_files: Vec, /// A minimum ipv4 network size. @@ -148,7 +148,7 @@ pub struct CloudGetMergeOptions { /// Any ranges smaller that this size are automatically /// increased to this size. This option may help minimize the size of the output /// network ranges. - #[structopt(long)] + #[arg(long)] pub min_ipv4_network_size: Option, /// A minimum ipv6 network size. @@ -156,7 +156,7 @@ pub struct CloudGetMergeOptions { /// Any ranges smaller that this size are automatically /// increased to this size. This option may help minimize the size of the output /// network ranges. - #[structopt(long)] + #[arg(long)] pub min_ipv6_network_size: Option, } @@ -172,22 +172,22 @@ pub struct CloudGetMergeOptions { /// downloaded such as with the "cloud get " command. You may /// download and merge in just a single command by using the /// "cloud get-read " command instead. -#[derive(Debug, StructOpt)] +#[derive(Debug, Args)] pub struct CloudReadOptions { /// Cloud service - #[structopt(possible_values = get_cloud_names())] - pub service: String, + #[arg(value_enum)] + pub service: CloudName, /// File to load the ip ranges from. STDIN is used if /// file is "-". pub file: PathBuf, /// Lua filter program to select the ranges of interest. - #[structopt(long, conflicts_with = "filter-file")] + #[arg(long, conflicts_with = "filter_file")] pub filter: Option, /// Path of a file containing a Lua filter program to select the ranges of interest. - #[structopt(long)] + #[arg(long)] pub filter_file: Option, } @@ -204,27 +204,27 @@ pub struct CloudReadOptions { /// times. In such a case, you may want to consider using "cloud get " /// to download the file once and then use "cloud merge " to process /// the already downloaded file. -#[derive(Debug, StructOpt)] +#[derive(Debug, Args)] pub struct CloudGetReadOptions { /// Cloud service - #[structopt(possible_values = get_cloud_names())] - pub service: String, + #[arg(value_enum)] + pub service: CloudName, /// Lua filter program to select the ranges of interest. - #[structopt(long, conflicts_with = "filter-file")] + #[arg(long, conflicts_with = "filter_file")] pub filter: Option, /// Path of a file containing a Lua filter program to select the ranges of interest. - #[structopt(long)] + #[arg(long)] pub filter_file: Option, } /// Print information about parameters available to filter ranges -#[derive(Debug, StructOpt)] +#[derive(Debug, Args)] pub struct CloudFilterHelpOptions { /// Cloud service - #[structopt(possible_values = get_cloud_names())] - pub service: String, + #[arg(value_enum)] + pub service: CloudName, } /// Merge IP ranges to try to minimize the number of ranges @@ -233,7 +233,7 @@ pub struct CloudFilterHelpOptions { /// via STDIN with a single range per line. /// /// The minimized set of ranges will be printed to STDOUT. -#[derive(Debug, StructOpt)] +#[derive(Debug, Args)] pub struct MergeOptions { /// The file to read ranges from. STDIN is used if /// file is "-". @@ -245,7 +245,7 @@ pub struct MergeOptions { /// The file should contain a single CIDR range per line. /// These ranges will be used to minimize the main set in the same way /// that non-selected ranges are with the "cloud merge" subcommand. - #[structopt(name = "extra-ranges-file", long)] + #[arg(name = "extra-ranges-file", long)] pub extra_ranges_files: Vec, /// A minimum ipv4 network size. @@ -253,7 +253,7 @@ pub struct MergeOptions { /// Any ranges smaller that this size are automatically /// increased to this size. This option may help minimize the size of the output /// network ranges. - #[structopt(long)] + #[arg(long)] pub min_ipv4_network_size: Option, /// A minimum ipv6 network size. @@ -261,77 +261,64 @@ pub struct MergeOptions { /// Any ranges smaller that this size are automatically /// increased to this size. This option may help minimize the size of the output /// network ranges. - #[structopt(long)] + #[arg(long)] pub min_ipv6_network_size: Option, } /// Commands for working with cloud service's IP ranges -#[derive(Debug, StructOpt)] +#[derive(Debug, Subcommand)] enum CloudCommands { - Get { - #[structopt(flatten)] - options: CloudGetOptions, - }, - Merge { - #[structopt(flatten)] - options: CloudMergeOptions, - }, - GetMerge { - #[structopt(flatten)] - options: CloudGetMergeOptions, - }, - Read { - #[structopt(flatten)] - options: CloudReadOptions, - }, - GetRead { - #[structopt(flatten)] - options: CloudGetReadOptions, - }, - FilterHelp { - #[structopt(flatten)] - options: CloudFilterHelpOptions, - }, + Get (CloudGetOptions), + Merge (CloudMergeOptions), + GetMerge (CloudGetMergeOptions), + Read (CloudReadOptions), + GetRead (CloudGetReadOptions), + FilterHelp (CloudFilterHelpOptions), } /// netrangemerge provides a command line interface to retrieve, /// filter, and merge adjacent IP ranges for various cloud /// services. -#[derive(Debug, StructOpt)] +#[derive(Debug, Subcommand)] enum Commands { Cloud { - #[structopt(flatten)] + #[command(subcommand)] subcommand: CloudCommands, }, - Merge { - #[structopt(flatten)] - options: MergeOptions, - }, + Merge (MergeOptions), +} + +#[derive(Parser)] +#[command(author, version, about, long_about = None)] +#[command(propagate_version = true)] +struct Cli { + #[command(subcommand)] + command: Commands, } fn main() -> Result<(), Error> { - let opts = Commands::from_args(); - match opts { + let opts = Cli::parse(); + match opts.command { Commands::Cloud { - subcommand: CloudCommands::Get { options }, + subcommand: CloudCommands::Get ( options ), } => cloud_get_command(options)?, Commands::Cloud { - subcommand: CloudCommands::Merge { options }, + subcommand: CloudCommands::Merge ( options ), } => cloud_merge_command(options)?, Commands::Cloud { - subcommand: CloudCommands::GetMerge { options }, + subcommand: CloudCommands::GetMerge ( options ), } => cloud_get_merge_command(options)?, Commands::Cloud { - subcommand: CloudCommands::Read { options }, + subcommand: CloudCommands::Read ( options ), } => cloud_read_command(options)?, Commands::Cloud { - subcommand: CloudCommands::GetRead { options }, + subcommand: CloudCommands::GetRead ( options ), } => cloud_get_read_command(options)?, Commands::Cloud { - subcommand: CloudCommands::FilterHelp { options }, + subcommand: CloudCommands::FilterHelp ( options ), } => cloud_filter_help_command(options)?, - Commands::Merge { options } => merge_command(options)?, + Commands::Merge ( options ) => merge_command(options)?, } Ok(()) } diff --git a/src/utils/cloud_config.rs b/src/utils/cloud_config.rs index 8f98c79..7e48150 100644 --- a/src/utils/cloud_config.rs +++ b/src/utils/cloud_config.rs @@ -1,12 +1,23 @@ use crate::sources::{aws, azure, cloudflare, digitalocean, fastly, gcp, github, google}; use crate::utils::filter_select::RangesWithMetadata; use anyhow::{bail, Error}; -use once_cell::sync::Lazy; use std::io::Read; -use std::ops::Deref; +use clap::ValueEnum; + +#[derive(ValueEnum, Clone, Copy, Eq, PartialEq, Debug)] +pub enum CloudName { + Aws, + Azure, + Cloudflare, + Digitalocean, + Fastly, + Gcp, + Github, + Google, +} pub struct CloudConfig { - service_name: &'static str, + service_name: CloudName, pub fetch_ranges_func: fn() -> Result, pub load_ranges_func: fn(&mut dyn Read) -> Result, Error>, pub filter_help: &'static str, @@ -14,66 +25,60 @@ pub struct CloudConfig { const CONFIG: &[CloudConfig] = &[ CloudConfig { - service_name: "aws", + service_name: CloudName::Aws, fetch_ranges_func: aws::fetch_ranges, load_ranges_func: aws::load_ranges, filter_help: aws::FILTER_HELP, }, CloudConfig { - service_name: "azure", + service_name: CloudName::Azure, fetch_ranges_func: azure::fetch_ranges, load_ranges_func: azure::load_ranges, filter_help: azure::FILTER_HELP, }, CloudConfig { - service_name: "cloudflare", + service_name: CloudName::Cloudflare, fetch_ranges_func: cloudflare::fetch_ranges, load_ranges_func: cloudflare::load_ranges, filter_help: cloudflare::FILTER_HELP, }, CloudConfig { - service_name: "digitalocean", + service_name: CloudName::Digitalocean, fetch_ranges_func: digitalocean::fetch_ranges, load_ranges_func: digitalocean::load_ranges, filter_help: digitalocean::FILTER_HELP, }, CloudConfig { - service_name: "fastly", + service_name: CloudName::Fastly, fetch_ranges_func: fastly::fetch_ranges, load_ranges_func: fastly::load_ranges, filter_help: fastly::FILTER_HELP, }, CloudConfig { - service_name: "gcp", + service_name: CloudName::Gcp, fetch_ranges_func: gcp::fetch_ranges, load_ranges_func: gcp::load_ranges, filter_help: gcp::FILTER_HELP, }, CloudConfig { - service_name: "github", + service_name: CloudName::Github, fetch_ranges_func: github::fetch_ranges, load_ranges_func: github::load_ranges, filter_help: github::FILTER_HELP, }, CloudConfig { - service_name: "google", + service_name: CloudName::Google, fetch_ranges_func: google::fetch_ranges, load_ranges_func: google::load_ranges, filter_help: google::FILTER_HELP, }, ]; -pub fn get_cloud_names() -> &'static Vec<&'static str> { - static INSTANCE: Lazy> = - Lazy::new(|| CONFIG.iter().map(|cc| cc.service_name).collect()); - INSTANCE.deref() -} - -pub fn get_cloud_config(service: &str) -> Result<&'static CloudConfig, Error> { +pub fn get_cloud_config(service: CloudName) -> Result<&'static CloudConfig, Error> { let cc = CONFIG.iter().find(|cc| cc.service_name == service); if let Some(cc) = cc { Ok(cc) } else { - bail!("Invalid service: {}", service) + bail!("Invalid service: {:?}", service) } } diff --git a/src/utils/load_ranges.rs b/src/utils/load_ranges.rs index 8090ec6..df1d154 100644 --- a/src/utils/load_ranges.rs +++ b/src/utils/load_ranges.rs @@ -1,4 +1,4 @@ -use crate::utils::cloud_config::get_cloud_config; +use crate::utils::cloud_config::{CloudName, get_cloud_config}; use crate::utils::filter_select::RangesWithMetadata; use anyhow::Error; use libnetrangemerge::{IpRange, RangeInterest}; @@ -9,7 +9,7 @@ use std::path::PathBuf; /// Download ranges from the internet for the named /// service and then load them into a Vec /// suitable for filtering and selecting. -pub fn fetch_and_load_cloud_ranges(service: &str) -> Result, Error> { +pub fn fetch_and_load_cloud_ranges(service: CloudName) -> Result, Error> { let cc = get_cloud_config(service)?; let fetch_func = cc.fetch_ranges_func; let load_func = cc.load_ranges_func; @@ -19,7 +19,7 @@ pub fn fetch_and_load_cloud_ranges(service: &str) -> Result /// suitable for filtering and selecting. -pub fn load_cloud_ranges(service: &str, file: PathBuf) -> Result, Error> { +pub fn load_cloud_ranges(service: CloudName, file: PathBuf) -> Result, Error> { let stdin = io::stdin(); let cc = get_cloud_config(service)?; let load_func = cc.load_ranges_func; From 1651adfde6846b2a8999717aad37459c0ac336f9 Mon Sep 17 00:00:00 2001 From: Palmer Cox Date: Fri, 30 Sep 2022 18:10:45 -0400 Subject: [PATCH 2/5] Update to rlua 0.19.4 No new features that we need - just keeping up to date. --- Cargo.lock | 21 ++++++++++++++++----- Cargo.toml | 2 +- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0fa088d..7006e3e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -760,9 +760,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.19" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" [[package]] name = "plotters" @@ -989,15 +989,26 @@ dependencies = [ [[package]] name = "rlua" -version = "0.17.0" +version = "0.19.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25fa5b2c667bae0b6218361e96d365e414fe4a0fa80f476b9631aa2dea2c6881" +checksum = "95b38117a836316ef62c02f6751e6d28e2eb53a1c35f0329427a9fb9c1c7b6a0" dependencies = [ "bitflags", "bstr", - "cc", "libc", "num-traits", + "rlua-lua54-sys", +] + +[[package]] +name = "rlua-lua54-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23ae48797c3e76fb2c205fda8f30e28416a15b9fc1d649cc7cea9ff1fb9cf028" +dependencies = [ + "cc", + "libc", + "pkg-config", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 4ea5ceb..2010f18 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ members = [ [dependencies] anyhow = "1.0.38" -rlua = "0.17.0" +rlua = "0.19.4" serde = { version = "1.0.123", features = ["derive"] } serde_json = "1.0.62" libnetrangemerge = { path = "libnetrangemerge", version = "0.1.0" } From f79f3b7b8f39e506a2196c441b45edd467b683e5 Mon Sep 17 00:00:00 2001 From: Palmer Cox Date: Fri, 30 Sep 2022 18:12:37 -0400 Subject: [PATCH 3/5] Remove once_cell dependency as we weren't actually using it --- Cargo.lock | 1 - Cargo.toml | 1 - 2 files changed, 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7006e3e..49869d9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -662,7 +662,6 @@ dependencies = [ "clap 4.0.7", "csv", "libnetrangemerge", - "once_cell", "regex", "reqwest", "rlua", diff --git a/Cargo.toml b/Cargo.toml index 2010f18..d83dac7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,5 +29,4 @@ clap = { version = "4", features = ["derive"] } reqwest = { version = "0.11.12", features = ["blocking"] } regex = "1.4.3" cidr = "0.1.1" -once_cell = "1.7.2" csv = "1.1.6" From 991f1b697de0e0e3bc69722ccd621ede0dc5046e Mon Sep 17 00:00:00 2001 From: Palmer Cox Date: Fri, 30 Sep 2022 18:13:29 -0400 Subject: [PATCH 4/5] Run "cargo fmt" --- src/main.rs | 30 +++++++++++++++--------------- src/utils/cloud_config.rs | 2 +- src/utils/load_ranges.rs | 7 +++++-- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/main.rs b/src/main.rs index a5720a1..9f0a6ff 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,8 +9,8 @@ use crate::commands::cloud::{ use crate::commands::merge::merge_command; use crate::utils::cloud_config::CloudName; use anyhow::Error; +use clap::{Args, Parser, Subcommand}; use std::path::PathBuf; -use clap::{Parser, Args, Subcommand}; /// Download the source file that contains the IP ranges that the service uses. /// @@ -268,12 +268,12 @@ pub struct MergeOptions { /// Commands for working with cloud service's IP ranges #[derive(Debug, Subcommand)] enum CloudCommands { - Get (CloudGetOptions), - Merge (CloudMergeOptions), - GetMerge (CloudGetMergeOptions), - Read (CloudReadOptions), - GetRead (CloudGetReadOptions), - FilterHelp (CloudFilterHelpOptions), + Get(CloudGetOptions), + Merge(CloudMergeOptions), + GetMerge(CloudGetMergeOptions), + Read(CloudReadOptions), + GetRead(CloudGetReadOptions), + FilterHelp(CloudFilterHelpOptions), } /// netrangemerge provides a command line interface to retrieve, @@ -285,7 +285,7 @@ enum Commands { #[command(subcommand)] subcommand: CloudCommands, }, - Merge (MergeOptions), + Merge(MergeOptions), } #[derive(Parser)] @@ -300,25 +300,25 @@ fn main() -> Result<(), Error> { let opts = Cli::parse(); match opts.command { Commands::Cloud { - subcommand: CloudCommands::Get ( options ), + subcommand: CloudCommands::Get(options), } => cloud_get_command(options)?, Commands::Cloud { - subcommand: CloudCommands::Merge ( options ), + subcommand: CloudCommands::Merge(options), } => cloud_merge_command(options)?, Commands::Cloud { - subcommand: CloudCommands::GetMerge ( options ), + subcommand: CloudCommands::GetMerge(options), } => cloud_get_merge_command(options)?, Commands::Cloud { - subcommand: CloudCommands::Read ( options ), + subcommand: CloudCommands::Read(options), } => cloud_read_command(options)?, Commands::Cloud { - subcommand: CloudCommands::GetRead ( options ), + subcommand: CloudCommands::GetRead(options), } => cloud_get_read_command(options)?, Commands::Cloud { - subcommand: CloudCommands::FilterHelp ( options ), + subcommand: CloudCommands::FilterHelp(options), } => cloud_filter_help_command(options)?, - Commands::Merge ( options ) => merge_command(options)?, + Commands::Merge(options) => merge_command(options)?, } Ok(()) } diff --git a/src/utils/cloud_config.rs b/src/utils/cloud_config.rs index 7e48150..b26d9a2 100644 --- a/src/utils/cloud_config.rs +++ b/src/utils/cloud_config.rs @@ -1,8 +1,8 @@ use crate::sources::{aws, azure, cloudflare, digitalocean, fastly, gcp, github, google}; use crate::utils::filter_select::RangesWithMetadata; use anyhow::{bail, Error}; -use std::io::Read; use clap::ValueEnum; +use std::io::Read; #[derive(ValueEnum, Clone, Copy, Eq, PartialEq, Debug)] pub enum CloudName { diff --git a/src/utils/load_ranges.rs b/src/utils/load_ranges.rs index df1d154..cd3959e 100644 --- a/src/utils/load_ranges.rs +++ b/src/utils/load_ranges.rs @@ -1,4 +1,4 @@ -use crate::utils::cloud_config::{CloudName, get_cloud_config}; +use crate::utils::cloud_config::{get_cloud_config, CloudName}; use crate::utils::filter_select::RangesWithMetadata; use anyhow::Error; use libnetrangemerge::{IpRange, RangeInterest}; @@ -19,7 +19,10 @@ pub fn fetch_and_load_cloud_ranges(service: CloudName) -> Result /// suitable for filtering and selecting. -pub fn load_cloud_ranges(service: CloudName, file: PathBuf) -> Result, Error> { +pub fn load_cloud_ranges( + service: CloudName, + file: PathBuf, +) -> Result, Error> { let stdin = io::stdin(); let cc = get_cloud_config(service)?; let load_func = cc.load_ranges_func; From 8364d2cf9cfd0a6f663d01dd8186d9b3b82ef6d6 Mon Sep 17 00:00:00 2001 From: Palmer Cox Date: Fri, 30 Sep 2022 18:16:15 -0400 Subject: [PATCH 5/5] Update locked versions of dependencies --- Cargo.lock | 529 ++++++++++++++++++++++------------------------------- 1 file changed, 215 insertions(+), 314 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 49869d9..8ae276e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,18 +4,18 @@ version = 3 [[package]] name = "aho-corasick" -version = "0.7.15" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" dependencies = [ "memchr", ] [[package]] name = "anyhow" -version = "1.0.38" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1" +checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" [[package]] name = "atty" @@ -42,21 +42,21 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "bitflags" -version = "1.2.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitstring" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e54f7b7a46d7b183eb41e2d82965261fa8a1597c68b50aced268ee1fc70272d" +checksum = "22a39c0db600cfe77ef1b6d9ea71173bdccf190722877969d526d380519b6ecc" [[package]] name = "bstr" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a40b47ad93e1a5404e6c18dec46b628214fee441c70f4ab5d6942142cc268a3d" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" dependencies = [ "lazy_static", "memchr", @@ -66,36 +66,27 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe" - -[[package]] -name = "byteorder" -version = "1.4.3" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" [[package]] name = "bytes" -version = "1.0.1" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" +checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" [[package]] name = "cast" -version = "0.2.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9434b9a5aa1450faa3f9cb14ea0e8c53bb5d2b3c1bfd1ab4fc03e9f33fbfb0" -dependencies = [ - "rustc_version", -] +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.67" +version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" [[package]] name = "cfg-if" @@ -115,9 +106,9 @@ dependencies = [ [[package]] name = "clap" -version = "2.33.3" +version = "2.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" dependencies = [ "bitflags", "textwrap", @@ -163,9 +154,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" dependencies = [ "core-foundation-sys", "libc", @@ -173,22 +164,22 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "criterion" -version = "0.3.4" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab327ed7354547cc2ef43cbe20ef68b988e70b4b593cbd66a2a61733123a3d23" +checksum = "b01d6de93b2b6c65e17c634a26653a29d107b3c98c607c765bf38d041531cd8f" dependencies = [ "atty", "cast", - "clap 2.33.3", + "clap 2.34.0", "criterion-plot", "csv", - "itertools 0.10.0", + "itertools", "lazy_static", "num-traits", "oorandom", @@ -205,19 +196,19 @@ dependencies = [ [[package]] name = "criterion-plot" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e022feadec601fba1649cfa83586381a4ad31c6bf3a9ab7d408118b05dd9889d" +checksum = "2673cc8207403546f45f5fd319a974b1e6983ad1a3ee7e6041650013be041876" dependencies = [ "cast", - "itertools 0.9.0", + "itertools", ] [[package]] name = "crossbeam-channel" -version = "0.5.0" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ "cfg-if", "crossbeam-utils", @@ -225,9 +216,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -236,26 +227,24 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.3" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12" +checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348" dependencies = [ + "autocfg", "cfg-if", "crossbeam-utils", - "lazy_static", "memoffset", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.3" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49" +checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" dependencies = [ - "autocfg", "cfg-if", - "lazy_static", ] [[package]] @@ -266,7 +255,7 @@ checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1" dependencies = [ "bstr", "csv-core", - "itoa 0.4.7", + "itoa 0.4.8", "ryu", "serde", ] @@ -282,19 +271,28 @@ dependencies = [ [[package]] name = "either" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "encoding_rs" -version = "0.8.28" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065" +checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" dependencies = [ "cfg-if", ] +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + [[package]] name = "fnv" version = "1.0.7" @@ -318,52 +316,51 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" dependencies = [ - "matches", "percent-encoding", ] [[package]] name = "futures-channel" -version = "0.3.13" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c2dd2df839b57db9ab69c2c9d8f3e8c81984781937fe2807dc6dcf3b2ad2939" +checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" dependencies = [ "futures-core", ] [[package]] name = "futures-core" -version = "0.3.13" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94" +checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" [[package]] name = "futures-io" -version = "0.3.13" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71c2c65c57704c32f5241c1223167c2c3294fd34ac020c807ddbe6db287ba59" +checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" [[package]] name = "futures-sink" -version = "0.3.13" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85754d98985841b7d4f5e8e6fbfa4a4ac847916893ec511a2917ccd8525b8bb3" +checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56" [[package]] name = "futures-task" -version = "0.3.13" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa189ef211c15ee602667a6fcfe1c1fd9e07d42250d2156382820fba33c9df80" +checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" [[package]] name = "futures-util" -version = "0.3.13" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1812c7ab8aedf8d6f2701a43e1243acdbcc2b36ab26e2ad421eb99ac963d96d1" +checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" dependencies = [ "futures-core", "futures-io", @@ -374,17 +371,6 @@ dependencies = [ "slab", ] -[[package]] -name = "getrandom" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.10.2+wasi-snapshot-preview1", -] - [[package]] name = "h2" version = "0.3.14" @@ -406,15 +392,15 @@ dependencies = [ [[package]] name = "half" -version = "1.7.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62aca2aba2d62b4a7f5b33f3712cb1b0692779a56fb510499d5c0aa594daeaf3" +checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" [[package]] name = "hashbrown" -version = "0.9.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "heck" @@ -424,32 +410,33 @@ checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" [[package]] name = "hermit-abi" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ "libc", ] [[package]] name = "http" -version = "0.2.3" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", - "itoa 0.4.7", + "itoa 1.0.3", ] [[package]] name = "http-body" -version = "0.4.0" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2861bd27ee074e5ee891e8b539837a9430012e249d7f0ca2d795650f579c1994" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", "http", + "pin-project-lite", ] [[package]] @@ -503,54 +490,53 @@ dependencies = [ [[package]] name = "idna" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89829a5d69c23d348314a7ac337fe39173b61149a9864deabd260983aed48c21" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" dependencies = [ - "matches", "unicode-bidi", "unicode-normalization", ] [[package]] name = "indexmap" -version = "1.6.2" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg", "hashbrown", ] [[package]] -name = "ipnet" -version = "2.3.0" +name = "instant" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] [[package]] -name = "itertools" -version = "0.9.0" +name = "ipnet" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" -dependencies = [ - "either", -] +checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" [[package]] name = "itertools" -version = "0.10.0" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ "either", ] [[package]] name = "itoa" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" @@ -560,9 +546,9 @@ checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" [[package]] name = "js-sys" -version = "0.3.48" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc9f84f9b115ce7843d60706df1422a916680bfdfcbdb0447c5614ff9d7e4d78" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" dependencies = [ "wasm-bindgen", ] @@ -589,30 +575,24 @@ dependencies = [ [[package]] name = "log" -version = "0.4.14" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ "cfg-if", ] -[[package]] -name = "matches" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" - [[package]] name = "memchr" -version = "2.3.4" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memoffset" -version = "0.6.1" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" dependencies = [ "autocfg", ] @@ -631,7 +611,7 @@ checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" dependencies = [ "libc", "log", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys", ] @@ -671,18 +651,18 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", ] [[package]] name = "num_cpus" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" dependencies = [ "hermit-abi", "libc", @@ -702,29 +682,41 @@ checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" [[package]] name = "openssl" -version = "0.10.32" +version = "0.10.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038d43985d1ddca7a9900630d8cd031b56e4794eecc2e9ea39dd17aa04399a70" +checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" dependencies = [ "bitflags", "cfg-if", "foreign-types", - "lazy_static", "libc", + "once_cell", + "openssl-macros", "openssl-sys", ] +[[package]] +name = "openssl-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "openssl-probe" -version = "0.1.2" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.60" +version = "0.9.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "921fc71883267538946025deffb622905ecad223c28efbfdef9bb59a0175f3e6" +checksum = "5230151e44c0f05157effb743e8d517472843121cf9243e8b81393edb5acd9ce" dependencies = [ "autocfg", "cc", @@ -741,15 +733,15 @@ checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pin-project-lite" -version = "0.2.6" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" [[package]] name = "pin-utils" @@ -765,9 +757,9 @@ checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" [[package]] name = "plotters" -version = "0.3.0" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ca0ae5f169d0917a7c7f5a9c1a3d3d9598f18f529dd2b8373ed988efea307a" +checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97" dependencies = [ "num-traits", "plotters-backend", @@ -778,25 +770,19 @@ dependencies = [ [[package]] name = "plotters-backend" -version = "0.3.0" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07fffcddc1cb3a1de753caa4e4df03b79922ba43cf882acc1bdd7e8df9f4590" +checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142" [[package]] name = "plotters-svg" -version = "0.3.0" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b38a02e23bd9604b842a812063aec4ef702b57989c37b655254bb61c471ad211" +checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f" dependencies = [ "plotters-backend", ] -[[package]] -name = "ppv-lite86" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" - [[package]] name = "proc-macro-error" version = "1.0.4" @@ -832,58 +818,18 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.9" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" dependencies = [ "proc-macro2", ] -[[package]] -name = "rand" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", - "rand_hc", -] - -[[package]] -name = "rand_chacha" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" -dependencies = [ - "rand_core", -] - [[package]] name = "rayon" -version = "1.5.0" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674" +checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" dependencies = [ "autocfg", "crossbeam-deque", @@ -893,52 +839,47 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.9.0" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" +checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" dependencies = [ "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "lazy_static", "num_cpus", ] [[package]] name = "redox_syscall" -version = "0.2.5" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] [[package]] name = "regex" -version = "1.4.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" dependencies = [ "aho-corasick", "memchr", "regex-syntax", - "thread_local", ] [[package]] name = "regex-automata" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4" -dependencies = [ - "byteorder", -] +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" [[package]] name = "regex-syntax" -version = "0.6.22" +version = "0.6.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" [[package]] name = "remove_dir_all" @@ -1010,20 +951,11 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver", -] - [[package]] name = "ryu" -version = "1.0.5" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" [[package]] name = "same-file" @@ -1036,12 +968,12 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" dependencies = [ "lazy_static", - "winapi", + "windows-sys", ] [[package]] @@ -1052,9 +984,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "security-framework" -version = "2.1.2" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d493c5f39e02dfb062cd8f33301f90f9b13b650e8c1b1d0fd75c19dd64bff69d" +checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" dependencies = [ "bitflags", "core-foundation", @@ -1065,43 +997,28 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.1.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee48cdde5ed250b0d3252818f646e174ab414036edb884dde62d80a3ac6082d" +checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" dependencies = [ "core-foundation-sys", "libc", ] -[[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.124" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd761ff957cb2a45fbb9ab3da6512de9de55872866160b23c25f1a841e99d29f" +checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" dependencies = [ "serde_derive", ] [[package]] name = "serde_cbor" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e18acfa2f90e8b735b2836ab8d538de304cbb6729a7360729ea5a895d15a622" +checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" dependencies = [ "half", "serde", @@ -1109,9 +1026,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.124" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1800f7693e94e186f5e25a28291ae1570da908aff7d97a095dec1e56ff99069b" +checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" dependencies = [ "proc-macro2", "quote", @@ -1120,11 +1037,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.64" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" +checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" dependencies = [ - "itoa 0.4.7", + "itoa 1.0.3", "ryu", "serde", ] @@ -1143,9 +1060,12 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.2" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] [[package]] name = "socket2" @@ -1176,13 +1096,13 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" dependencies = [ "cfg-if", + "fastrand", "libc", - "rand", "redox_syscall", "remove_dir_all", "winapi", @@ -1206,15 +1126,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "thread_local" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" -dependencies = [ - "once_cell", -] - [[package]] name = "tinytemplate" version = "1.2.1" @@ -1227,9 +1138,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.1.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317cca572a0e89c3ce0ca1f1bdc9369547fe318a683418e42ac8f59d14701023" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" dependencies = [ "tinyvec_macros", ] @@ -1283,15 +1194,15 @@ dependencies = [ [[package]] name = "tower-service" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.25" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f" +checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" dependencies = [ "cfg-if", "pin-project-lite", @@ -1300,11 +1211,11 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.17" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f" +checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" dependencies = [ - "lazy_static", + "once_cell", ] [[package]] @@ -1315,12 +1226,9 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "unicode-bidi" -version = "0.3.4" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" -dependencies = [ - "matches", -] +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" @@ -1330,36 +1238,35 @@ checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" [[package]] name = "unicode-normalization" -version = "0.1.17" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] [[package]] name = "unicode-width" -version = "0.1.8" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] name = "url" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" dependencies = [ "form_urlencoded", "idna", - "matches", "percent-encoding", ] [[package]] name = "vcpkg" -version = "0.2.11" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" @@ -1369,9 +1276,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" dependencies = [ "same-file", "winapi", @@ -1388,12 +1295,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -1402,9 +1303,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.71" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee1280240b7c461d6a0071313e08f34a60b0365f14260362e5a2b17d1d31aa7" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -1412,13 +1313,13 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.71" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b7d8b6942b8bb3a9b0e73fc79b98095a27de6fa247615e59d096754a3bc2aa8" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" dependencies = [ "bumpalo", - "lazy_static", "log", + "once_cell", "proc-macro2", "quote", "syn", @@ -1427,9 +1328,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.21" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e67a5806118af01f0d9045915676b22aaebecf4178ae7021bc171dab0b897ab" +checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" dependencies = [ "cfg-if", "js-sys", @@ -1439,9 +1340,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.71" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ac38da8ef716661f0f36c0d8320b89028efe10c7c0afde65baffb496ce0d3b" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1449,9 +1350,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.71" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc053ec74d454df287b9374ee8abb36ffd5acb95ba87da3ba5b7d3fe20eb401e" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" dependencies = [ "proc-macro2", "quote", @@ -1462,15 +1363,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.71" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d6f8ec44822dd71f5f221a5847fb34acd9060535c1211b70a05844c0f6383b1" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" [[package]] name = "web-sys" -version = "0.3.48" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec600b26223b2948cedfde2a0aa6756dcf1fef616f43d7b3097aaf53a6c4d92b" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" dependencies = [ "js-sys", "wasm-bindgen",