Merge pull request #180 from mingnus/2021-06-25-update-deps

Update config scripts and Rust dependencies
This commit is contained in:
Joe Thornber 2021-06-28 15:44:59 +01:00 committed by GitHub
commit 5ac9ae2dae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 2706 additions and 2247 deletions

1
.gitignore vendored
View File

@ -20,6 +20,7 @@ core
googletest/ googletest/
bin/pdata_tools bin/pdata_tools
bin/pdata_tools_dev
thin_check thin_check
thin_dump thin_dump
thin_restore thin_restore

448
Cargo.lock generated
View File

@ -1,16 +1,18 @@
# This file is automatically @generated by Cargo. # This file is automatically @generated by Cargo.
# It is not intended for manual editing. # It is not intended for manual editing.
version = 3
[[package]] [[package]]
name = "adler" name = "adler"
version = "0.2.3" version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]] [[package]]
name = "aho-corasick" name = "aho-corasick"
version = "0.7.13" version = "0.7.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86" checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
dependencies = [ dependencies = [
"memchr", "memchr",
] ]
@ -26,15 +28,15 @@ dependencies = [
[[package]] [[package]]
name = "anyhow" name = "anyhow"
version = "1.0.32" version = "1.0.41"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b602bfe940d21c130f3895acd65221e8a61270debe89d628b9cb4e3ccb8569b" checksum = "15af2628f6890fe2609a3b91bef4c83450512802e59489f9c1cb1fa5df064a61"
[[package]] [[package]]
name = "arrayvec" name = "arrayvec"
version = "0.5.1" version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
[[package]] [[package]]
name = "atty" name = "atty"
@ -55,9 +57,9 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
[[package]] [[package]]
name = "base64" name = "base64"
version = "0.12.3" version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
[[package]] [[package]]
name = "bitflags" name = "bitflags"
@ -67,9 +69,9 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
[[package]] [[package]]
name = "bitvec" name = "bitvec"
version = "0.19.4" version = "0.19.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7ba35e9565969edb811639dbebfe34edc0368e472c5018474c8eb2543397f81" checksum = "8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321"
dependencies = [ dependencies = [
"funty", "funty",
"radium", "radium",
@ -79,9 +81,9 @@ dependencies = [
[[package]] [[package]]
name = "byteorder" name = "byteorder"
version = "1.3.4" version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]] [[package]]
name = "cassowary" name = "cassowary"
@ -91,15 +93,15 @@ checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.0.60" version = "1.0.68"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c" checksum = "4a72c244c1ff497a746a7e1fb3d14bd08420ecda70c8f25c7112f2781652d787"
[[package]] [[package]]
name = "cfg-if" name = "cfg-if"
version = "0.1.10" version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]] [[package]]
name = "clap" name = "clap"
@ -118,47 +120,46 @@ dependencies = [
[[package]] [[package]]
name = "console" name = "console"
version = "0.12.0" version = "0.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0b1aacfaffdbff75be81c15a399b4bedf78aaefe840e8af1d299ac2ade885d2" checksum = "3993e6445baa160675931ec041a5e03ca84b9c6e32a056150d3aa2bdda0a1f45"
dependencies = [ dependencies = [
"encode_unicode", "encode_unicode",
"lazy_static", "lazy_static",
"libc", "libc",
"regex",
"terminal_size", "terminal_size",
"termios",
"unicode-width",
"winapi", "winapi",
"winapi-util",
] ]
[[package]] [[package]]
name = "crc32c" name = "crc32c"
version = "0.4.0" version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77ba37ef26c12988c1cee882d522d65e1d5d2ad8c3864665b88ee92767ed84c5" checksum = "210cdf933e6a81212bfabf90cd8762f471b5922e5f6b709547673ad8e04b9448"
dependencies = [
"rustc_version",
]
[[package]] [[package]]
name = "crc32fast" name = "crc32fast"
version = "1.2.0" version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
] ]
[[package]] [[package]]
name = "data-encoding" name = "data-encoding"
version = "2.3.0" version = "2.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4d0e2d24e5ee3b23a01de38eefdcd978907890701f08ffffd4cb457ca4ee8d6" checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57"
[[package]] [[package]]
name = "duct" name = "duct"
version = "0.13.4" version = "0.13.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f90a9c3a25aafbd538c7d40a53f83c4487ee8216c12d1c8ef2c01eb2f6ea1553" checksum = "0fc6a0a59ed0888e0041cf708e66357b7ae1a82f1c67247e1f93b5e0818f7d8d"
dependencies = [ dependencies = [
"libc", "libc",
"once_cell", "once_cell",
@ -184,15 +185,15 @@ dependencies = [
[[package]] [[package]]
name = "fixedbitset" name = "fixedbitset"
version = "0.3.1" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e08c8bc7575d7e091fe0706963bd22e2a4be6a64da995f03b2a5a57d66ad015" checksum = "398ea4fabe40b9b0d885340a2a991a44c8a645624075ad966d21f88688e2b69e"
[[package]] [[package]]
name = "flate2" name = "flate2"
version = "1.0.17" version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "766d0e77a2c1502169d4a93ff3b8c15a71fd946cd0126309752104e5f3c46d94" checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"crc32fast", "crc32fast",
@ -202,15 +203,15 @@ dependencies = [
[[package]] [[package]]
name = "funty" name = "funty"
version = "1.0.1" version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ba62103ce691c2fd80fbae2213dfdda9ce60804973ac6b6e97de818ea7f52c8" checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7"
[[package]] [[package]]
name = "futures" name = "futures"
version = "0.3.5" version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613" checksum = "0e7e43a803dae2fa37c1f6a8fe121e1f7bf9548b4dfc0522a42f34145dadfc27"
dependencies = [ dependencies = [
"futures-channel", "futures-channel",
"futures-core", "futures-core",
@ -223,9 +224,9 @@ dependencies = [
[[package]] [[package]]
name = "futures-channel" name = "futures-channel"
version = "0.3.5" version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2"
dependencies = [ dependencies = [
"futures-core", "futures-core",
"futures-sink", "futures-sink",
@ -233,15 +234,15 @@ dependencies = [
[[package]] [[package]]
name = "futures-core" name = "futures-core"
version = "0.3.5" version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1"
[[package]] [[package]]
name = "futures-executor" name = "futures-executor"
version = "0.3.5" version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314" checksum = "badaa6a909fac9e7236d0620a2f57f7664640c56575b71a7552fbd68deafab79"
dependencies = [ dependencies = [
"futures-core", "futures-core",
"futures-task", "futures-task",
@ -250,16 +251,17 @@ dependencies = [
[[package]] [[package]]
name = "futures-io" name = "futures-io"
version = "0.3.5" version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789" checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1"
[[package]] [[package]]
name = "futures-macro" name = "futures-macro"
version = "0.3.5" version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121"
dependencies = [ dependencies = [
"autocfg",
"proc-macro-hack", "proc-macro-hack",
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -268,25 +270,23 @@ dependencies = [
[[package]] [[package]]
name = "futures-sink" name = "futures-sink"
version = "0.3.5" version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc" checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282"
[[package]] [[package]]
name = "futures-task" name = "futures-task"
version = "0.3.5" version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626" checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae"
dependencies = [
"once_cell",
]
[[package]] [[package]]
name = "futures-util" name = "futures-util"
version = "0.3.5" version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967"
dependencies = [ dependencies = [
"autocfg",
"futures-channel", "futures-channel",
"futures-core", "futures-core",
"futures-io", "futures-io",
@ -294,7 +294,7 @@ dependencies = [
"futures-sink", "futures-sink",
"futures-task", "futures-task",
"memchr", "memchr",
"pin-project", "pin-project-lite",
"pin-utils", "pin-utils",
"proc-macro-hack", "proc-macro-hack",
"proc-macro-nested", "proc-macro-nested",
@ -303,29 +303,40 @@ dependencies = [
[[package]] [[package]]
name = "getrandom" name = "getrandom"
version = "0.1.15" version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"libc", "libc",
"wasi", "wasi 0.9.0+wasi-snapshot-preview1",
]
[[package]]
name = "getrandom"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
dependencies = [
"cfg-if",
"libc",
"wasi 0.10.2+wasi-snapshot-preview1",
] ]
[[package]] [[package]]
name = "hermit-abi" name = "hermit-abi"
version = "0.1.15" version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9" checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [ dependencies = [
"libc", "libc",
] ]
[[package]] [[package]]
name = "indicatif" name = "indicatif"
version = "0.15.0" version = "0.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7baab56125e25686df467fe470785512329883aab42696d661247aca2a2896e4" checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b"
dependencies = [ dependencies = [
"console", "console",
"lazy_static", "lazy_static",
@ -335,9 +346,9 @@ dependencies = [
[[package]] [[package]]
name = "io-uring" name = "io-uring"
version = "0.3.5" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a31e11f8867575fc79a3e73e5f554d0b7386bc4a6f469039e8a83136c724fd81" checksum = "2f7589adca0ddd74f56ed83a5098b45e3abf264dc27e150a8bec3397fcc34338"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"libc", "libc",
@ -357,9 +368,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]] [[package]]
name = "lexical-core" name = "lexical-core"
version = "0.7.4" version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db65c6da02e61f55dae90a0ae427b2a5f6b3e8db09f58d10efab23af92592616" checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe"
dependencies = [ dependencies = [
"arrayvec", "arrayvec",
"bitflags", "bitflags",
@ -370,30 +381,39 @@ dependencies = [
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.77" version = "0.2.97"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2f96b10ec2560088a8e76961b00d47107b3a625fecb76dedb29ee7ccbf98235" checksum = "12b8adadd720df158f4d70dfe7ccc6adb0472d7c55ca83445f6a5ab3e36f8fb6"
[[package]] [[package]]
name = "log" name = "log"
version = "0.4.11" version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
] ]
[[package]] [[package]]
name = "memchr" name = "memchr"
version = "2.3.3" version = "2.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
[[package]]
name = "memoffset"
version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9"
dependencies = [
"autocfg",
]
[[package]] [[package]]
name = "miniz_oxide" name = "miniz_oxide"
version = "0.4.2" version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c60c0dfe32c10b43a144bad8fc83538c52f58302c92300ea7ec7bf7b38d5a7b9" checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
dependencies = [ dependencies = [
"adler", "adler",
"autocfg", "autocfg",
@ -401,24 +421,25 @@ dependencies = [
[[package]] [[package]]
name = "nix" name = "nix"
version = "0.17.0" version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363" checksum = "5c3728fec49d363a50a8828a190b379a446cc5cf085c06259bbbeb34447e4ec7"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cc", "cc",
"cfg-if", "cfg-if",
"libc", "libc",
"void", "memoffset",
] ]
[[package]] [[package]]
name = "nom" name = "nom"
version = "6.0.0" version = "6.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4489ccc7d668957ddf64af7cd027c081728903afa6479d35da7e99bf5728f75f" checksum = "9c5c51b9083a3c620fa67a2a635d1ce7d95b897e957d6b28ff9a5da960a103a6"
dependencies = [ dependencies = [
"bitvec", "bitvec",
"funty",
"lexical-core", "lexical-core",
"memchr", "memchr",
"version_check", "version_check",
@ -426,9 +447,9 @@ dependencies = [
[[package]] [[package]]
name = "num-derive" name = "num-derive"
version = "0.3.2" version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f09b9841adb6b5e1f89ef7087ea636e0fd94b2851f887c1e3eb5d5f8228fab3" checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -437,9 +458,9 @@ dependencies = [
[[package]] [[package]]
name = "num-traits" name = "num-traits"
version = "0.2.12" version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
dependencies = [ dependencies = [
"autocfg", "autocfg",
] ]
@ -456,9 +477,9 @@ dependencies = [
[[package]] [[package]]
name = "number_prefix" name = "number_prefix"
version = "0.3.0" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17b02fc0ff9a9e4b35b3342880f48e896ebf69f2967921fe8646bf5b7125956a" checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
[[package]] [[package]]
name = "numtoa" name = "numtoa"
@ -468,9 +489,9 @@ checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef"
[[package]] [[package]]
name = "once_cell" name = "once_cell"
version = "1.4.1" version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad" checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
[[package]] [[package]]
name = "os_pipe" name = "os_pipe"
@ -483,24 +504,10 @@ dependencies = [
] ]
[[package]] [[package]]
name = "pin-project" name = "pin-project-lite"
version = "0.4.23" version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa" checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
version = "0.4.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "pin-utils" name = "pin-utils"
@ -510,36 +517,36 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]] [[package]]
name = "ppv-lite86" name = "ppv-lite86"
version = "0.2.9" version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20" checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
[[package]] [[package]]
name = "proc-macro-hack" name = "proc-macro-hack"
version = "0.5.18" version = "0.5.19"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598" checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
[[package]] [[package]]
name = "proc-macro-nested" name = "proc-macro-nested"
version = "0.1.6" version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.21" version = "1.0.27"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36e28516df94f3dd551a587da5357459d9b36d945a7c37c3557928c1c2ff2a2c" checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038"
dependencies = [ dependencies = [
"unicode-xid", "unicode-xid",
] ]
[[package]] [[package]]
name = "quick-xml" name = "quick-xml"
version = "0.18.1" version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3cc440ee4802a86e357165021e3e255a9143724da31db1e2ea540214c96a0f82" checksum = "8533f14c8382aaad0d592c812ac3b826162128b65662331e1127b45c3d18536b"
dependencies = [ dependencies = [
"memchr", "memchr",
] ]
@ -552,8 +559,8 @@ checksum = "a44883e74aa97ad63db83c4bf8ca490f02b2fc02f92575e720c8551e843c945f"
dependencies = [ dependencies = [
"env_logger", "env_logger",
"log", "log",
"rand", "rand 0.7.3",
"rand_core", "rand_core 0.5.1",
] ]
[[package]] [[package]]
@ -569,9 +576,9 @@ dependencies = [
[[package]] [[package]]
name = "quote" name = "quote"
version = "1.0.7" version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
] ]
@ -588,11 +595,23 @@ version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
dependencies = [ dependencies = [
"getrandom", "getrandom 0.1.16",
"libc", "libc",
"rand_chacha", "rand_chacha 0.2.2",
"rand_core", "rand_core 0.5.1",
"rand_hc", "rand_hc 0.2.0",
]
[[package]]
name = "rand"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
dependencies = [
"libc",
"rand_chacha 0.3.1",
"rand_core 0.6.3",
"rand_hc 0.3.1",
] ]
[[package]] [[package]]
@ -602,7 +621,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
dependencies = [ dependencies = [
"ppv-lite86", "ppv-lite86",
"rand_core", "rand_core 0.5.1",
]
[[package]]
name = "rand_chacha"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [
"ppv-lite86",
"rand_core 0.6.3",
] ]
[[package]] [[package]]
@ -611,7 +640,16 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
dependencies = [ dependencies = [
"getrandom", "getrandom 0.1.16",
]
[[package]]
name = "rand_core"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
dependencies = [
"getrandom 0.2.3",
] ]
[[package]] [[package]]
@ -620,41 +658,52 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
dependencies = [ dependencies = [
"rand_core", "rand_core 0.5.1",
]
[[package]]
name = "rand_hc"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
dependencies = [
"rand_core 0.6.3",
] ]
[[package]] [[package]]
name = "redox_syscall" name = "redox_syscall"
version = "0.1.57" version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" checksum = "5ab49abadf3f9e1c4bc499e8845e152ad87d2ad2d30371841171169e9d75feee"
dependencies = [
"bitflags",
]
[[package]] [[package]]
name = "redox_termios" name = "redox_termios"
version = "0.1.1" version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" checksum = "8440d8acb4fd3d277125b4bd01a6f38aee8d814b3b5fc09b3f2b825d37d3fe8f"
dependencies = [ dependencies = [
"redox_syscall", "redox_syscall",
] ]
[[package]] [[package]]
name = "regex" name = "regex"
version = "1.3.9" version = "1.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" checksum = "2a26af418b574bd56588335b3a3659a65725d4e636eb1016c2f9e3b38c7cc759"
dependencies = [ dependencies = [
"aho-corasick", "aho-corasick",
"memchr", "memchr",
"regex-syntax", "regex-syntax",
"thread_local",
] ]
[[package]] [[package]]
name = "regex-syntax" name = "regex-syntax"
version = "0.6.18" version = "0.6.25"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
[[package]] [[package]]
name = "remove_dir_all" name = "remove_dir_all"
@ -665,6 +714,15 @@ dependencies = [
"winapi", "winapi",
] ]
[[package]]
name = "rustc_version"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
dependencies = [
"semver",
]
[[package]] [[package]]
name = "ryu" name = "ryu"
version = "1.0.5" version = "1.0.5"
@ -678,10 +736,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
[[package]] [[package]]
name = "shared_child" name = "semver"
version = "0.3.4" version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8cebcf3a403e4deafaf34dc882c4a1b6a648b43e5670aa2e4bb985914eaeb2d2" 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 = "shared_child"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6be9f7d5565b1483af3e72975e2dee33879b3b86bd48c0929fccf6585d79e65a"
dependencies = [ dependencies = [
"libc", "libc",
"winapi", "winapi",
@ -689,9 +762,9 @@ dependencies = [
[[package]] [[package]]
name = "slab" name = "slab"
version = "0.4.2" version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527"
[[package]] [[package]]
name = "static_assertions" name = "static_assertions"
@ -707,9 +780,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
[[package]] [[package]]
name = "syn" name = "syn"
version = "1.0.41" version = "1.0.73"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6690e3e9f692504b941dc6c3b188fd28df054f7fb8469ab40680df52fdcc842b" checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -718,19 +791,19 @@ dependencies = [
[[package]] [[package]]
name = "tap" name = "tap"
version = "1.0.0" version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36474e732d1affd3a6ed582781b3683df3d0563714c59c39591e8ff707cf078e" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
[[package]] [[package]]
name = "tempfile" name = "tempfile"
version = "3.1.0" version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"libc", "libc",
"rand", "rand 0.8.4",
"redox_syscall", "redox_syscall",
"remove_dir_all", "remove_dir_all",
"winapi", "winapi",
@ -738,9 +811,9 @@ dependencies = [
[[package]] [[package]]
name = "terminal_size" name = "terminal_size"
version = "0.1.13" version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a14cd9f8c72704232f0bfc8455c0e861f0ad4eb60cc9ec8a170e231414c1e13" checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df"
dependencies = [ dependencies = [
"libc", "libc",
"winapi", "winapi",
@ -748,9 +821,9 @@ dependencies = [
[[package]] [[package]]
name = "termion" name = "termion"
version = "1.5.5" version = "1.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c22cec9d8978d906be5ac94bceb5a010d885c626c4c8855721a4dbd20e3ac905" checksum = "077185e2eac69c3f8379a4298e1e07cd36beb962290d4a51199acf0fdc10607e"
dependencies = [ dependencies = [
"libc", "libc",
"numtoa", "numtoa",
@ -758,15 +831,6 @@ dependencies = [
"redox_termios", "redox_termios",
] ]
[[package]]
name = "termios"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f0fcee7b24a25675de40d5bb4de6e41b0df07bc9856295e7e2b3a3600c400c2"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "textwrap" name = "textwrap"
version = "0.11.0" version = "0.11.0"
@ -803,7 +867,7 @@ dependencies = [
"quick-xml", "quick-xml",
"quickcheck", "quickcheck",
"quickcheck_macros", "quickcheck_macros",
"rand", "rand 0.8.4",
"safemem", "safemem",
"tempfile", "tempfile",
"termion", "termion",
@ -814,33 +878,24 @@ dependencies = [
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "1.0.20" version = "1.0.25"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08" checksum = "fa6f76457f59514c7eeb4e59d891395fab0b2fd1d40723ae737d64153392e9c6"
dependencies = [ dependencies = [
"thiserror-impl", "thiserror-impl",
] ]
[[package]] [[package]]
name = "thiserror-impl" name = "thiserror-impl"
version = "1.0.20" version = "1.0.25"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793" checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn", "syn",
] ]
[[package]]
name = "thread_local"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
dependencies = [
"lazy_static",
]
[[package]] [[package]]
name = "threadpool" name = "threadpool"
version = "1.8.1" version = "1.8.1"
@ -852,9 +907,9 @@ dependencies = [
[[package]] [[package]]
name = "tui" name = "tui"
version = "0.10.0" version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a977b0bb2e2033a6fef950f218f13622c3c34e59754b704ce3492dedab1dfe95" checksum = "9ced152a8e9295a5b168adc254074525c17ac4a83c90b2716274cc38118bddc9"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cassowary", "cassowary",
@ -865,9 +920,9 @@ dependencies = [
[[package]] [[package]]
name = "unicode-segmentation" name = "unicode-segmentation"
version = "1.6.0" version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796"
[[package]] [[package]]
name = "unicode-width" name = "unicode-width"
@ -877,9 +932,9 @@ checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
[[package]] [[package]]
name = "unicode-xid" name = "unicode-xid"
version = "0.2.1" version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
[[package]] [[package]]
name = "vec_map" name = "vec_map"
@ -889,15 +944,9 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
[[package]] [[package]]
name = "version_check" name = "version_check"
version = "0.9.2" version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
[[package]]
name = "void"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
[[package]] [[package]]
name = "wasi" name = "wasi"
@ -905,6 +954,12 @@ version = "0.9.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
[[package]]
name = "wasi"
version = "0.10.2+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
[[package]] [[package]]
name = "winapi" name = "winapi"
version = "0.3.9" version = "0.3.9"
@ -921,15 +976,6 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-util"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
dependencies = [
"winapi",
]
[[package]] [[package]]
name = "winapi-x86_64-pc-windows-gnu" name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0" version = "0.4.0"

View File

@ -8,30 +8,30 @@ license = "GPL3"
[dependencies] [dependencies]
atty = "0.2" atty = "0.2"
anyhow = "1.0" anyhow = "1.0"
base64 = "0.12" base64 = "0.13"
byteorder = "1.3" byteorder = "1.4"
clap = "2.33" clap = "2.33"
crc32c = "0.4" crc32c = "0.6"
data-encoding = "2.3" data-encoding = "2.3"
duct = "0.13" duct = "0.13"
fixedbitset = "0.3" fixedbitset = "0.4"
futures = "0.3" futures = "0.3"
flate2 = "1.0" flate2 = "1.0"
io-uring = "0.3" io-uring = "0.4"
indicatif = "0.15" indicatif = "0.16"
libc = "0.2.71" libc = "0.2"
nix = "0.17" nix = "0.21"
nom = "6.0.0" nom = "6.2"
num_cpus = "1.13" num_cpus = "1.13"
num-derive = "0.3" num-derive = "0.3"
num-traits = "0.2" num-traits = "0.2"
quick-xml = "0.18" quick-xml = "0.22"
rand = "0.7" rand = "0.8"
safemem = "0.3.3" safemem = "0.3"
tempfile = "3.1" tempfile = "3.2"
threadpool = "1.8" threadpool = "1.8"
thiserror = "1.0" thiserror = "1.0"
tui = "0.10" tui = "0.14"
termion = "1.5" termion = "1.5"
[dev-dependencies] [dev-dependencies]

View File

@ -236,7 +236,8 @@ INSTALL_DATA = $(INSTALL) -p -m 644
%.8: %.txt bin/txt2man %.8: %.txt bin/txt2man
@echo " [txt2man] $<" @echo " [txt2man] $<"
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
$(V) bin/txt2man -p -t $(basename $(notdir $<)) $< > $@ $(V) bin/txt2man -t $(basename $(notdir $<)) \
-s 8 -v "System Manager's Manual" -r "Device Mapper Tools" $< > $@
#---------------------------------------------------------------- #----------------------------------------------------------------
@ -271,6 +272,7 @@ clean:
find . -name \*.gmo -delete find . -name \*.gmo -delete
find . -name \*.d -delete find . -name \*.d -delete
$(RM) $(PROGRAMS) $(DEV_TOOLS) lib/*.a lib/*.so $(RM) $(PROGRAMS) $(DEV_TOOLS) lib/*.a lib/*.so
$(RM) man8/*.8
distclean: clean distclean: clean
$(RM) config.cache config.log config.status configure.h version.h Makefile unit-tests/Makefile $(RM) config.cache config.log config.status configure.h version.h Makefile unit-tests/Makefile
@ -348,10 +350,12 @@ rust-tools:
cargo build --release cargo build --release
install-rust-tools: man8/thin_metadata_pack.8 man8/thin_metadata_unpack.8 rust-tools install-rust-tools: man8/thin_metadata_pack.8 man8/thin_metadata_unpack.8 rust-tools
$(INSTALL_DIR) $(BINDIR)
$(INSTALL_PROGRAM) target/release/thin_metadata_pack $(BINDIR) $(INSTALL_PROGRAM) target/release/thin_metadata_pack $(BINDIR)
$(INSTALL_PROGRAM) target/release/thin_metadata_unpack $(BINDIR) $(INSTALL_PROGRAM) target/release/thin_metadata_unpack $(BINDIR)
$(STRIP) $(BINDIR)/thin_metadata_pack $(STRIP) $(BINDIR)/thin_metadata_pack
$(STRIP) $(BINDIR)/thin_metadata_unpack $(STRIP) $(BINDIR)/thin_metadata_unpack
$(INSTALL_DIR) $(MANPATH)/man8
$(INSTALL_DATA) man8/thin_metadata_pack.8 $(MANPATH)/man8 $(INSTALL_DATA) man8/thin_metadata_pack.8 $(MANPATH)/man8
$(INSTALL_DATA) man8/thin_metadata_unpack.8 $(MANPATH)/man8 $(INSTALL_DATA) man8/thin_metadata_unpack.8 $(MANPATH)/man8

1301
autoconf/config.guess vendored

File diff suppressed because it is too large Load Diff

2899
autoconf/config.sub vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,4 @@
#!/bin/sh #!/bin/sh
test "$HOME" = ~ || exec ksh $0 "$@" # try ksh if sh too old (not yet POSIX)
# Copyright (C) 2001, 2002, 2003 Marc Vertes # Copyright (C) 2001, 2002, 2003 Marc Vertes
@ -18,7 +17,7 @@ test "$HOME" = ~ || exec ksh $0 "$@" # try ksh if sh too old (not yet POSIX)
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA. # 02111-1307, USA.
# txt2man-1.5 # release 1.7.1
usage() usage()
{ {
@ -27,7 +26,7 @@ NAME
txt2man - convert flat ASCII text to man page format txt2man - convert flat ASCII text to man page format
SYNOPSIS SYNOPSIS
txt2man [-hpTX] [-t mytitle] [-P pname] [-r rel] [-s sect] txt2man [-hpTX] [-t mytitle] [-P pname] [-r rel] [-s sect]
[-v vol] [-I txt] [-B txt] [ifile] [-v vol] [-I txt] [-B txt] [-d date] [ifile]
DESCRIPTION DESCRIPTION
txt2man converts the input text into nroff/troff standard man(7) txt2man converts the input text into nroff/troff standard man(7)
macros used to format Unix manual pages. Nice pages can be generated macros used to format Unix manual pages. Nice pages can be generated
@ -45,26 +44,32 @@ DESCRIPTION
Here is how text patterns are recognized and processed: Here is how text patterns are recognized and processed:
Sections These headers are defined by a line in upper case, starting Sections These headers are defined by a line in upper case, starting
column 1. If there is one or more leading spaces, a column 1. If there is one or more leading spaces, a
sub-section will be generated instead. sub-section will be generated instead. Optionally, the
Section name can be preceded by a blank line. This is useful
for a better visualization of the source text to be used to
generate the manpage.
Paragraphs They must be separated by a blank line, and left aligned. Paragraphs They must be separated by a blank line, and left aligned.
Alternatively two blank spaces can be used to produce the
same result. This option will provide a better visualization
of the source text to be used to generate the manpage.
Tag list The item definition is separated from the item description Tag list The item definition is separated from the item description
by at least 2 blank spaces, even before a new line, if by at least 2 blank spaces, even before a new line, if
definition is too long. Definition will be emphasized definition is too long. Definition will be emphasized
by default. by default.
Bullet list Bullet list
Bullet list items are defined by the first word being "-" Bullet list items are defined by the first word being "-"
or "*" or "o". or "*" or "o".
Enumerated list Enumerated list
The first word must be a number followed by a dot. The first word must be a number followed by a dot.
Literal display blocks Literal display blocks
This paragraph type is used to display unmodified text, This paragraph type is used to display unmodified text,
for example source code. It must be separated by a blank for example source code. It must be separated by a blank
line, and be indented. It is primarily used to format line and be indented by a TAB. It is primarily used to format
unmodified source code. It will be printed using fixed font unmodified source code. It will be printed using fixed font
whenever possible (troff). whenever possible (troff).
Cross references Cross references
A cross reference (another man page) is defined by a word A cross reference (another man page) is defined by a word
followed by a number in parenthesis. followed by a number in parenthesis.
Special sections: Special sections:
NAME The function or command name and short description are set in NAME The function or command name and short description are set in
@ -72,37 +77,45 @@ DESCRIPTION
SYNOPSIS This section receives a special treatment to identify command SYNOPSIS This section receives a special treatment to identify command
name, flags and arguments, and propagate corresponding name, flags and arguments, and propagate corresponding
attributes later in the text. If a C like function is recognized attributes later in the text. If a C like function is recognized
(word immediately followed by an open parenthesis), txt2man will (word immediately followed by an open parenthesis), txt2man will
print function name in bold font, types in normal font, and print function name in bold font, types in normal font, and
variables in italic font. The whole section will be printed using variables in italic font. The whole section will be printed using
a fixed font family (courier) whenever possible (troff). a fixed font family (courier) whenever possible (troff).
It is a good practice to embed documentation into source code, by using It is a good practice to embed documentation into source code, by using
comments or constant text variables. txt2man allows to do that, keeping comments or constant text variables. txt2man allows one to do that, keeping
the document source readable, usable even without further formatting the document source readable, usable even without further formatting
(i.e. for online help) and easy to write. The result is high quality (i.e. for online help) and easy to write. The result is high quality
and standard complying document. and standard complying document.
OPTIONS OPTIONS
-h The option -h displays help. -h The option -h displays help.
-d date Set date in header. Defaults to current date.
-P pname Set pname as project name in header. Default to uname -s. -P pname Set pname as project name in header. Default to uname -s.
-p Probe title, section name and volume. -p Probe title, section name and volume.
-t mytitle Set mytitle as title of generated man page. -t mytitle Set mytitle as title of generated man page.
-r rel Set rel as project name and release. -r rel Set rel as project name and release.
-s sect Set sect as section in heading, ususally a value from 1 to 8. -s sect Set sect as section in heading, usually a value from 1 to 8.
-v vol Set vol as volume name, i.e. "Unix user 's manual". -v vol Set vol as volume name, i.e. "Unix user 's manual".
-I txt Italicize txt in output. Can be specified more than once. -I txt Italicize txt in output. Can be specified more than once.
-B txt Emphasize (bold) txt in output. Can be specified more than once. -B txt Emphasize (bold) txt in output. Can be specified more than once.
-T Text result previewing using PAGER, usually more(1). -T Text result previewing using PAGER, usually more(1).
-X X11 result previewing using gxditview(1). -X X11 result previewing using gxditview(1).
ENVIRONMENT ENVIRONMENT
PAGER name of paging command, usually more(1), or less(1). If not set PAGER name of paging command, usually more(1), or less(1). If not set
falls back to more(1). falls back to more(1).
EXAMPLE SOURCE_DATE_EPOCH Unix timestamp that is used for date in header instead
of current date.
EXAMPLES
Try this command to format this text itself: Try this command to format this text itself:
$ txt2man -h 2>&1 | txt2man -T $ txt2man -h 2>&1 | txt2man -T
The following command will generate a manpage level 1 to foo-1.1.0 program,
from foo.txt file, used as source code to previously mentioned manpage:
$ txt2man -d "15 May 2016" -t foo -r foo-1.1.0 -s 1 -v "show stars on screen" foo.txt > foo.1
HINTS HINTS
To obtain an overall good formating of output document, keep paragraphs To obtain an overall good formatting of output document, keep paragraphs
indented correctly. If you have unwanted bold sections, search for indented correctly. If you have unwanted bold sections, search for
multiple spaces between words, which are used to identify a tag list multiple spaces between words, which are used to identify a tag list
(term followed by a description). Choose also carefully the name of (term followed by a description). Choose also carefully the name of
@ -127,35 +140,53 @@ doprobe=
itxt= itxt=
btxt= btxt=
post=cat post=cat
while getopts :hpTXr:s:t:v:P:I:B: opt while getopts :d:hpTXr:s:t:v:P:I:B: opt
do do
case $opt in case $opt in
r) rel=$OPTARG;; (d) date=$OPTARG;;
t) title=$OPTARG;; (r) rel=$OPTARG;;
s) section=$OPTARG;; (t) title=$OPTARG;;
v) volume=$OPTARG;; (s) section=$OPTARG;;
P) sys=$OPTARG;; (v) volume=$OPTARG;;
p) doprobe=1;; (P) sys=$OPTARG;;
I) itxt="$OPTARG§$itxt";; (p) doprobe=1;;
B) btxt=$OPTARG;; (I) itxt="$OPTARG§$itxt";;
T) post="groff -mandoc -Tlatin1 | ${PAGER:-more}";; (B) btxt="$OPTARG§$btxt";;
X) post="groff -mandoc -X";; (T) post="groff -mandoc -Tlatin1 | ${PAGER:-more}";;
*) usage; exit;; (X) post="groff -mandoc -TX100-12 -rS12";;
(*) usage; exit;;
esac esac
done done
shift $(($OPTIND - 1)) shift $(($OPTIND - 1))
# Compatibility wrapper for BSD/GNU date, for parsing dates
if date -j >/dev/null 2>&1; then
pdate() { date -u -j -f '@%s' "$@"; }
else
pdate() { date -u -d "$@"; }
fi
if [ -n "$SOURCE_DATE_EPOCH" ]; then
date=$(LC_ALL=C pdate "@$SOURCE_DATE_EPOCH" +'%d %B %Y')
fi
date=${date:-$(LC_ALL=C date -u +'%d %B %Y')}
if test "$doprobe" if test "$doprobe"
then then
title=${1##*/}; title=${title%.txt} title=${1##*/}; title=${title%.txt}
section="8" if grep -q '#include ' $1
volume="System Manager's Manual" then
section=${section:-3}
volume=${volume:-"$sys Programmer's Manual"}
else
section=${section:-1}
volume=${volume:-"$sys Reference Manual"}
fi
# get release from path # get release from path
#rel=$(pwd | sed 's:/.*[^0-9]/::g; s:/.*::g') rel=${rel:-"$(pwd | sed 's:/.*[^0-9]/::g; s:/.*::g')"}
rel="Device Mapper Tools"
fi fi
head=".\\\" Text automatically generated by txt2man head="\" Text automatically generated by txt2man
.TH $title $section \"$rel\" \"$volume\"" .TH $title $section \"$rel\" \"$volume\""
# All tabs converted to spaces # All tabs converted to spaces
@ -163,11 +194,11 @@ expand $* |
# gawk is needed because use of non standard regexp # gawk is needed because use of non standard regexp
gawk --re-interval -v head="$head" -v itxt="$itxt" -v btxt="$btxt" ' gawk --re-interval -v head="$head" -v itxt="$itxt" -v btxt="$btxt" '
BEGIN { BEGIN {
print head print ".\\" head
avar[1] = btxt; avar[2] = itxt avar[1] = btxt; avar[2] = itxt
for (k in avar) { for (k in avar) {
mark = (k == 1) ? "\\fB" : "\\fI" mark = (k == 1) ? "\\fB" : "\\fI"
split(avar[k], tt, "§") split(avar[k], tt, "§")
for (i in tt) for (i in tt)
if (tt[i] != "") if (tt[i] != "")
subwords["\\<" tt[i] "\\>"] = mark tt[i] "\\fP" subwords["\\<" tt[i] "\\>"] = mark tt[i] "\\fP"
@ -179,11 +210,11 @@ BEGIN {
} }
{ {
# to avoid some side effects in regexp # to avoid some side effects in regexp
sub(/\.\.\./, "\\.\\.\\.") gsub(/\.\.\./, "\\.\\.\\.")
# remove spaces in empty lines # remove spaces in empty lines
sub(/^ +$/,"") sub(/^ +$/,"")
} }
/^[[:upper:][:space:]]+$/ { /^[:space:]*[[:upper:][:digit:]]+[[:upper:][:space:][:digit:][:punct:]]+$/ {
# Section header # Section header
if ((in_bd + 0) == 1) { if ((in_bd + 0) == 1) {
in_bd = 0 in_bd = 0
@ -199,8 +230,10 @@ BEGIN {
print ".SS" $0 print ".SS" $0
sub(/^ +/, "") sub(/^ +/, "")
section = $0 section = $0
if (section == "SYNOPSIS") if (section == "SYNOPSIS") {
print ".nf\n.fam C" print ".nf\n.fam C"
in_bd = 1
}
ls = 0 # line start index ls = 0 # line start index
pls = 0 # previous line start index pls = 0 # previous line start index
pnzls = 0 # previous non zero line start index pnzls = 0 # previous non zero line start index
@ -216,7 +249,7 @@ BEGIN {
pnzls = ls pnzls = ls
match($0, /[^ ]/) match($0, /[^ ]/)
ls = RSTART ls = RSTART
if (pls == 0 && pnzls > 0 && ls > pnzls && $1 !~ /^[0-9\-\*\o]\.*$/) { if (in_bd == 0 && pls == 0 && pnzls > 0 && ls > pnzls && $1 !~ /^[\-\*o]$|^[0-9]+\.$/) {
# example display block # example display block
if (prevblankline == 1) { if (prevblankline == 1) {
print ".PP" print ".PP"
@ -230,8 +263,10 @@ BEGIN {
ind[0] = ls ind[0] = ls
} }
(in_bd + 0) == 1 { (in_bd + 0) == 1 {
# In example display block # In block display
if (ls != 0 && ls < eoff) { if (section == "SYNOPSIS")
;
else if (ls != 0 && ls < eoff) {
# End of litteral display block # End of litteral display block
in_bd = 0 in_bd = 0
print ".fam T\n.fi" print ".fam T\n.fi"
@ -244,11 +279,12 @@ section == "NAME" {
section == "SYNOPSIS" { section == "SYNOPSIS" {
# Identify arguments of fcts and cmds # Identify arguments of fcts and cmds
if (type["SYNOPSIS"] == "") { if (type["SYNOPSIS"] == "") {
if (index($0, "(") == 0 && index($0, ")") == 0 && if ($0 ~ /\(/)
index($0, "#include") == 0)
type["SYNOPSIS"] = "cmd"
else
type["SYNOPSIS"] = "fct" type["SYNOPSIS"] = "fct"
else if ($1 == "struct" || $2 == "struct")
type["SYNOPSIS"] = "struct"
else if ($1 && $1 !~ /^#|typedef|struct|union|enum/)
type["SYNOPSIS"] = "cmd"
} }
if (type["SYNOPSIS"] == "cmd") { if (type["SYNOPSIS"] == "cmd") {
# Line is a command line # Line is a command line
@ -263,19 +299,19 @@ section == "SYNOPSIS" {
if (a ~ /^[^\-]/) if (a ~ /^[^\-]/)
subwords["\\<" a "\\>"] = "\\fI" a "\\fP" subwords["\\<" a "\\>"] = "\\fI" a "\\fP"
} }
} else { } else if (type["SYNOPSIS"] == "fct") {
# Line is a C function definition # Line is a C function definition
if ($1 == "typedef") if ($1 == "typedef") {
subwords["\\<" $2 "\\>"] = "\\fI" $2 "\\fP" if ($0 !~ /\(\*/)
else if ($1 == "#define") subwords["\\<" $2 "\\>"] = "\\fI" $2 "\\fP"
} else if ($1 == "#define")
subwords["\\<" $2 "\\>"] = "\\fI" $2 "\\fP" subwords["\\<" $2 "\\>"] = "\\fI" $2 "\\fP"
for (i = 1; i <= NF; i++) { for (i = 1; i <= NF; i++) {
if ($i ~ /[\,\)]/) { if ($i ~ /[,\)];*$/) {
a = $i a = $i
sub(/.*\(/, "", a) sub(/.*\(/, "", a)
gsub(/\W/, "", a) gsub(/\W/, "", a)
if (a !~ /^void$/) subwords["\\<" a "\\>"] = "\\fI" a "\\fP"
subwords["\\<" a "\\>"] = "\\fI" a "\\fP"
} }
} }
} }
@ -298,13 +334,19 @@ section == "SYNOPSIS" {
} }
} }
# word attributes # word attributes
for (i in subwords) n = asorti(subwords, indices)
gsub(i, subwords[i]) for (i = 1; i <= n; i++)
gsub(indices[i], subwords[indices[i]])
# shell options # shell options
gsub(/\B\-+\w+(\-\w+)*/, "\\fB&\\fP") gsub(/\B\-+\w+(\-\w+)*/, "\\fB&\\fP")
# unprotect dots inside words # unprotect dots inside words
gsub(/_dOt_/, ".") gsub(/_dOt_/, ".")
if (section == "SYNOPSIS") {
sub(/^ /, "")
print
next
}
if (match($0, /[^ ] +/) > 0) { if (match($0, /[^ ] +/) > 0) {
# tag list item # tag list item
adjust_indent() adjust_indent()
@ -347,6 +389,8 @@ section == "SYNOPSIS" {
} }
if (section != "SYNOPSIS" || $0 ~ /^ {1,4}/) if (section != "SYNOPSIS" || $0 ~ /^ {1,4}/)
sub(/ */,"") sub(/ */,"")
# Protect lines starting by simple quotes
sub(/^'\''/, "\\(cq")
print print
} }

View File

@ -159,16 +159,16 @@ impl<'a> StatefulWidget for SBWidget<'a> {
.split(area); .split(area);
let sb = self.sb; let sb = self.sb;
let flags = ["flags".to_string(), format!("{}", sb.flags)]; let flags = vec!["flags".to_string(), format!("{}", sb.flags)];
let block = ["block".to_string(), format!("{}", sb.block)]; let block = vec!["block".to_string(), format!("{}", sb.block)];
let uuid = ["uuid".to_string(), "-".to_string()]; let uuid = vec!["uuid".to_string(), "-".to_string()];
let version = ["version".to_string(), format!("{}", sb.version)]; let version = vec!["version".to_string(), format!("{}", sb.version)];
let time = ["time".to_string(), format!("{}", sb.time)]; let time = vec!["time".to_string(), format!("{}", sb.time)];
let transaction_id = [ let transaction_id = vec![
"transaction_id".to_string(), "transaction_id".to_string(),
format!("{}", sb.transaction_id), format!("{}", sb.transaction_id),
]; ];
let metadata_snap = [ let metadata_snap = vec![
"metadata_snap".to_string(), "metadata_snap".to_string(),
if sb.metadata_snap == 0 { if sb.metadata_snap == 0 {
"-".to_string() "-".to_string()
@ -176,35 +176,36 @@ impl<'a> StatefulWidget for SBWidget<'a> {
format!("{}", sb.metadata_snap) format!("{}", sb.metadata_snap)
}, },
]; ];
let mapping_root = ["mapping root".to_string(), format!("{}", sb.mapping_root)]; let mapping_root = vec!["mapping root".to_string(), format!("{}", sb.mapping_root)];
let details_root = ["details root".to_string(), format!("{}", sb.details_root)]; let details_root = vec!["details root".to_string(), format!("{}", sb.details_root)];
let data_block_size = [ let data_block_size = vec![
"data block size".to_string(), "data block size".to_string(),
format!("{}k", sb.data_block_size * 2), format!("{}k", sb.data_block_size * 2),
]; ];
let table = Table::new( let table = Table::new(
["Field", "Value"].iter(),
vec![ vec![
Row::Data(flags.iter()), Row::new(flags),
Row::Data(block.iter()), Row::new(block),
Row::Data(uuid.iter()), Row::new(uuid),
Row::Data(version.iter()), Row::new(version),
Row::Data(time.iter()), Row::new(time),
Row::Data(transaction_id.iter()), Row::new(transaction_id),
Row::Data(metadata_snap.iter()), Row::new(metadata_snap),
Row::Data(mapping_root.iter()), Row::new(mapping_root),
Row::Data(details_root.iter()), Row::new(details_root),
Row::Data(data_block_size.iter()), Row::new(data_block_size),
] ]
.into_iter(), )
.header(
Row::new(vec!["Field", "Value"])
.style(Style::default().fg(Color::Yellow))
) )
.block( .block(
Block::default() Block::default()
.borders(Borders::ALL) .borders(Borders::ALL)
.title("Superblock".to_string()), .title("Superblock".to_string()),
) )
.header_style(Style::default().fg(Color::Yellow))
.widths(&[Constraint::Length(20), Constraint::Length(60)]) .widths(&[Constraint::Length(20), Constraint::Length(60)])
.style(Style::default().fg(Color::White)) .style(Style::default().fg(Color::White))
.column_spacing(1); .column_spacing(1);
@ -238,31 +239,32 @@ struct HeaderWidget<'a> {
impl<'a> Widget for HeaderWidget<'a> { impl<'a> Widget for HeaderWidget<'a> {
fn render(self, area: Rect, buf: &mut Buffer) { fn render(self, area: Rect, buf: &mut Buffer) {
let hdr = &self.hdr; let hdr = &self.hdr;
let block = ["block".to_string(), format!("{}", hdr.block)]; let block = vec!["block".to_string(), format!("{}", hdr.block)];
let kind = [ let kind = vec![
"type".to_string(), "type".to_string(),
match hdr.is_leaf { match hdr.is_leaf {
true => "LEAF".to_string(), true => "LEAF".to_string(),
false => "INTERNAL".to_string(), false => "INTERNAL".to_string(),
}, },
]; ];
let nr_entries = ["nr_entries".to_string(), format!("{}", hdr.nr_entries)]; let nr_entries = vec!["nr_entries".to_string(), format!("{}", hdr.nr_entries)];
let max_entries = ["max_entries".to_string(), format!("{}", hdr.max_entries)]; let max_entries = vec!["max_entries".to_string(), format!("{}", hdr.max_entries)];
let value_size = ["value size".to_string(), format!("{}", hdr.value_size)]; let value_size = vec!["value size".to_string(), format!("{}", hdr.value_size)];
let table = Table::new( let table = Table::new(
["Field", "Value"].iter(),
vec![ vec![
Row::Data(block.iter()), Row::new(block),
Row::Data(kind.iter()), Row::new(kind),
Row::Data(nr_entries.iter()), Row::new(nr_entries),
Row::Data(max_entries.iter()), Row::new(max_entries),
Row::Data(value_size.iter()), Row::new(value_size),
] ]
.into_iter(), )
.header(
Row::new(vec!["Field", "Value"])
.style(Style::default().fg(Color::Yellow))
) )
.block(Block::default().borders(Borders::ALL).title(self.title)) .block(Block::default().borders(Borders::ALL).title(self.title))
.header_style(Style::default().fg(Color::Yellow))
.widths(&[Constraint::Length(20), Constraint::Length(60)]) .widths(&[Constraint::Length(20), Constraint::Length(60)])
.style(Style::default().fg(Color::White)) .style(Style::default().fg(Color::White))
.column_spacing(1); .column_spacing(1);

View File

@ -255,10 +255,11 @@ impl AsyncIoEngine {
let mut inner = self.inner.lock().unwrap(); let mut inner = self.inner.lock().unwrap();
let count = blocks.len(); let count = blocks.len();
let fd = types::Target::Fd(inner.input.as_raw_fd()); let fd_inner = inner.input.as_raw_fd();
for (i, b) in blocks.iter().enumerate() { for (i, b) in blocks.iter().enumerate() {
let read_e = opcode::Read::new(fd, b.data, BLOCK_SIZE as u32) let read_e = opcode::Read::new(
types::Fd(fd_inner), b.data, BLOCK_SIZE as u32)
.offset(b.loc as i64 * BLOCK_SIZE as i64); .offset(b.loc as i64 * BLOCK_SIZE as i64);
unsafe { unsafe {
@ -306,10 +307,11 @@ impl AsyncIoEngine {
let mut inner = self.inner.lock().unwrap(); let mut inner = self.inner.lock().unwrap();
let count = blocks.len(); let count = blocks.len();
let fd = types::Target::Fd(inner.input.as_raw_fd()); let fd_inner = inner.input.as_raw_fd();
for (i, b) in blocks.iter().enumerate() { for (i, b) in blocks.iter().enumerate() {
let write_e = opcode::Write::new(fd, b.data, BLOCK_SIZE as u32) let write_e = opcode::Write::new(
types::Fd(fd_inner), b.data, BLOCK_SIZE as u32)
.offset(b.loc as i64 * BLOCK_SIZE as i64); .offset(b.loc as i64 * BLOCK_SIZE as i64);
unsafe { unsafe {
@ -372,7 +374,7 @@ impl IoEngine for AsyncIoEngine {
fn read(&self, b: u64) -> Result<Block> { fn read(&self, b: u64) -> Result<Block> {
let mut inner = self.inner.lock().unwrap(); let mut inner = self.inner.lock().unwrap();
let fd = types::Target::Fd(inner.input.as_raw_fd()); let fd = types::Fd(inner.input.as_raw_fd());
let b = Block::new(b); let b = Block::new(b);
let read_e = opcode::Read::new(fd, b.data, BLOCK_SIZE as u32) let read_e = opcode::Read::new(fd, b.data, BLOCK_SIZE as u32)
.offset(b.loc as i64 * BLOCK_SIZE as i64); .offset(b.loc as i64 * BLOCK_SIZE as i64);
@ -421,7 +423,7 @@ impl IoEngine for AsyncIoEngine {
fn write(&self, b: &Block) -> Result<()> { fn write(&self, b: &Block) -> Result<()> {
let mut inner = self.inner.lock().unwrap(); let mut inner = self.inner.lock().unwrap();
let fd = types::Target::Fd(inner.input.as_raw_fd()); let fd = types::Fd(inner.input.as_raw_fd());
let write_e = opcode::Write::new(fd, b.data, BLOCK_SIZE as u32) let write_e = opcode::Write::new(fd, b.data, BLOCK_SIZE as u32)
.offset(b.loc as i64 * BLOCK_SIZE as i64); .offset(b.loc as i64 * BLOCK_SIZE as i64);

View File

@ -15,7 +15,7 @@ pub struct TestDir {
fn mk_dir(prefix: &str) -> Result<PathBuf> { fn mk_dir(prefix: &str) -> Result<PathBuf> {
for _n in 0..100 { for _n in 0..100 {
let mut p = PathBuf::new(); let mut p = PathBuf::new();
let nr = rand::thread_rng().gen_range(1000000, 9999999); let nr = rand::thread_rng().gen_range(1000000..9999999);
p.push(format!("./{}_{}", prefix, nr)); p.push(format!("./{}_{}", prefix, nr));
if let Ok(()) = fs::create_dir(&p) { if let Ok(()) = fs::create_dir(&p) {
return Ok(p); return Ok(p);

View File

@ -133,7 +133,7 @@ fn mk_runs(thin_id: u32, total_len: u64, run_len: std::ops::Range<u64>) -> Vec<T
while b < total_len { while b < total_len {
let len = u64::min( let len = u64::min(
total_len - b, total_len - b,
thread_rng().gen_range(run_len.start, run_len.end), thread_rng().gen_range(run_len.start..run_len.end),
); );
runs.push(ThinRun { runs.push(ThinRun {
thin_id, thin_id,
@ -230,7 +230,7 @@ impl Allocator {
while b < total_len { while b < total_len {
let len = u64::min( let len = u64::min(
total_len - b, total_len - b,
thread_rng().gen_range(run_len.start, run_len.end), thread_rng().gen_range(run_len.start..run_len.end),
); );
runs.push(b..(b + len)); runs.push(b..(b + len));
b += len; b += len;
@ -375,8 +375,8 @@ fn mk_origin(thin_id: u32, total_len: u64, allocator: &mut Allocator) -> Result<
let mut runs = Vec::new(); let mut runs = Vec::new();
let mut b = 0; let mut b = 0;
while b < total_len { while b < total_len {
let len = u64::min(thread_rng().gen_range(16, 64), total_len - b); let len = u64::min(thread_rng().gen_range(16..64), total_len - b);
match thread_rng().gen_range(0, 2) { match thread_rng().gen_range(0..2) {
0 => { 0 => {
for data in allocator.alloc(len)? { for data in allocator.alloc(len)? {
assert!(data.end >= data.start); assert!(data.end >= data.start);
@ -416,10 +416,10 @@ fn mk_snap_mapping(
while b < total_len { while b < total_len {
let len = u64::min( let len = u64::min(
total_len - b, total_len - b,
thread_rng().gen_range(run_len.start, run_len.end), thread_rng().gen_range(run_len.start..run_len.end),
); );
let n = thread_rng().gen_range(0, 100); let n = thread_rng().gen_range(0..100);
if n < same_percent { if n < same_percent {
runs.push(SnapRun(SnapRunType::Same, len)); runs.push(SnapRun(SnapRunType::Same, len));