diff --git a/Cargo.lock b/Cargo.lock index a3f68d7..5582723 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,9 +1,9 @@ [[package]] name = "aho-corasick" -version = "0.6.6" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -11,7 +11,7 @@ name = "ansi_term" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -46,7 +46,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -55,10 +55,10 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -66,7 +66,7 @@ name = "backtrace-sys" version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -77,7 +77,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aster 0.41.0 (registry+https://github.com/rust-lang/crates.io-index)", "cexpr 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "clang-sys 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -92,20 +92,21 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.37.4" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "cexpr 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "clang-sys 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.5.12 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "which 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -121,7 +122,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bitflags" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -135,12 +136,12 @@ dependencies = [ [[package]] name = "byteorder" -version = "1.2.4" +version = "1.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cc" -version = "1.0.18" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -153,16 +154,16 @@ dependencies = [ [[package]] name = "cfg-if" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "chrono" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -194,7 +195,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -206,7 +207,7 @@ name = "cloudabi" version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -219,7 +220,7 @@ name = "crossbeam" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-channel 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-channel 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-deque 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-epoch 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -227,14 +228,14 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-epoch 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-epoch 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -252,7 +253,20 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -271,7 +285,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "redox_users 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -290,14 +304,14 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.5.12" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "termcolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -315,9 +329,9 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.14 (registry+https://github.com/rust-lang/crates.io-index)", - "synstructure 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.16 (registry+https://github.com/rust-lang/crates.io-index)", + "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -325,7 +339,7 @@ name = "filetime" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -335,7 +349,7 @@ name = "fuchsia-zircon" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -351,7 +365,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "thread-scoped 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -388,7 +402,7 @@ name = "lazy_static" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -416,18 +430,18 @@ name = "libloading" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libsodium-sys" version = "0.1.0" -source = "git+https://github.com/sodiumoxide/sodiumoxide#f0bb453dd65e2e4be2f7be55f7100e0f2a57fc14" +source = "git+https://github.com/sodiumoxide/sodiumoxide#0be9734cc2ddb07ac0cd7cc67cf48afd6982cc91" dependencies = [ - "bindgen 0.37.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bindgen 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -448,7 +462,7 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -460,15 +474,15 @@ name = "log" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "log 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "log" -version = "0.4.3" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -481,10 +495,12 @@ dependencies = [ [[package]] name = "memchr" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -524,7 +540,7 @@ name = "num-integer" version = "0.1.39" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -532,12 +548,12 @@ name = "num-traits" version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "num-traits" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -550,22 +566,23 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lock_api 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", + "lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "parking_lot_core" -version = "0.2.14" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -587,7 +604,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "pkg-config" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -641,7 +658,7 @@ dependencies = [ [[package]] name = "quote" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", @@ -649,12 +666,12 @@ dependencies = [ [[package]] name = "rand" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -665,13 +682,21 @@ dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand_core" -version = "0.2.1" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_core" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -694,7 +719,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "argon2rs 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -703,23 +728,23 @@ name = "regex" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aho-corasick 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex" -version = "1.0.2" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aho-corasick 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -727,7 +752,7 @@ name = "regex-syntax" version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -735,7 +760,7 @@ name = "regex-syntax" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -743,7 +768,7 @@ name = "remove_dir_all" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -751,7 +776,7 @@ name = "rmp" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -760,9 +785,9 @@ name = "rmp-serde" version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "rmp 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -780,6 +805,14 @@ name = "rustc-serialize" version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "scoped_threadpool" version = "0.1.9" @@ -790,9 +823,22 @@ name = "scopeguard" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "serde" -version = "1.0.71" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -800,7 +846,7 @@ name = "serde_bytes" version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -808,24 +854,24 @@ name = "serde_utils" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_yaml" -version = "0.7.5" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)", - "yaml-rust 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "yaml-rust 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "smallvec" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -834,11 +880,11 @@ dependencies = [ [[package]] name = "sodiumoxide" version = "0.1.0" -source = "git+https://github.com/sodiumoxide/sodiumoxide#f0bb453dd65e2e4be2f7be55f7100e0f2a57fc14" +source = "git+https://github.com/sodiumoxide/sodiumoxide#0be9734cc2ddb07ac0cd7cc67cf48afd6982cc91" dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "libsodium-sys 0.1.0 (git+https://github.com/sodiumoxide/sodiumoxide)", - "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -848,7 +894,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bindgen 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -863,22 +909,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "syn" -version = "0.15.14" +version = "0.15.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "synstructure" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.14 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.16 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -926,7 +972,7 @@ dependencies = [ [[package]] name = "tar" -version = "0.4.16" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "filetime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -940,7 +986,7 @@ name = "tempdir" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -955,10 +1001,10 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "wincolor 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -999,12 +1045,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "ucd-util" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1032,7 +1078,7 @@ dependencies = [ [[package]] name = "users" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1040,7 +1086,7 @@ dependencies = [ [[package]] name = "utf8-ranges" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1050,7 +1096,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "version_check" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1073,7 +1119,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "winapi" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1090,6 +1136,14 @@ name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "winapi-util" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -1097,10 +1151,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "wincolor" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1113,7 +1168,7 @@ dependencies = [ [[package]] name = "yaml-rust" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1125,8 +1180,8 @@ version = "0.5.0" dependencies = [ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "chrono 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "dirs 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1135,29 +1190,29 @@ dependencies = [ "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "locale_config 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mmap 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "murmurhash3 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "rmp-serde 0.13.7 (registry+https://github.com/rust-lang/crates.io-index)", "runtime-fmt 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)", "serde_utils 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_yaml 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_yaml 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)", "sodiumoxide 0.1.0 (git+https://github.com/sodiumoxide/sodiumoxide)", "squash-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tar 0.4.16 (registry+https://github.com/rust-lang/crates.io-index)", + "tar 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "users 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "users 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [metadata] -"checksum aho-corasick 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c1c6d463cbe7ed28720b5b489e7c083eeb8f90d08be2a0d6bb9e1ffea9ce1afa" +"checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum argon2rs 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3f67b0b6a86dae6e67ff4ca2b6201396074996379fba2b92ff649126f37cb392" "checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef" @@ -1166,30 +1221,31 @@ dependencies = [ "checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a" "checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0" "checksum bindgen 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)" = "16a8070d69d86935d11b0778dbdbc83a0a799d982e521baa62d0812b727734be" -"checksum bindgen 0.37.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1b25ab82877ea8fe6ce1ce1f8ac54361f0218bad900af9eb11803994bf67c221" +"checksum bindgen 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)" = "27f1b60c5c6cd7eb6a664b5fdde58dbfc1e6a8497118836211a85b9a56fafe2d" "checksum bitflags 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1370e9fc2a6ae53aea8b7a5110edbd08836ed87c88736dfabccade1c2b44bff4" "checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" -"checksum bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c54bb8f454c567f21197eefcdbf5679d0bd99f2ddbe52e84c77061952e6789" +"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" -"checksum byteorder 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8389c509ec62b9fe8eca58c502a0acaf017737355615243496cde4994f8fa4f9" -"checksum cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "2119ea4867bd2b8ed3aecab467709720b2d55b1bcfe09f772fd68066eaf15275" +"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" +"checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" "checksum cexpr 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42aac45e9567d97474a834efdee3081b3c942b2205be932092f53354ce503d6c" -"checksum cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4e7bb64a8ebb0d856483e1e682ea3422f883c5f5615a90d51a2c82fe87fdd3" -"checksum chrono 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e48d85528df61dc964aa43c5f6ca681a19cfa74939b2348d204bd08a981f2fb0" +"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" +"checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" "checksum clang-sys 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "611ec2e3a7623afd8a8c0d027887b6b55759d894abbf5fe11b9dc11b50d5b49a" "checksum clang-sys 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d7f7c04e52c35222fffcc3a115b5daf5f7e2bfb71c13c4e2321afe1fc71859c2" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e" "checksum crossbeam 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d7408247b1b87f480890f28b670c5f8d9a8a4274833433fe74dc0dfd46d33650" -"checksum crossbeam-channel 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6c0a94250b0278d7fc5a894c3d276b11ea164edc8bf8feb10ca1ea517b44a649" +"checksum crossbeam-channel 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7b85741761b7f160bc5e7e0c14986ef685b7f8bf9b7ad081c60c604bb4649827" "checksum crossbeam-deque 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7792c4a9b5a4222f654e3728a3dd945aacc24d2c3a1a096ed265d80e4929cb9a" "checksum crossbeam-epoch 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "30fecfcac6abfef8771151f8be4abc9e4edc112c2bcb233314cafde2680536e9" +"checksum crossbeam-epoch 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c90f1474584f38e270b5b613e898c8c328aa4f3dea85e0a27ac2e642f009416" "checksum crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015" "checksum dirs 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "88972de891f6118092b643d85a0b28e0678e0f948d7f879aa32f2d5aafe97d2a" "checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" "checksum env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8cd5b" -"checksum env_logger 0.5.12 (registry+https://github.com/rust-lang/crates.io-index)" = "f4d7e69c283751083d53d01eac767407343b8b69c4bd70058e08adc2637cb257" +"checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38" "checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7" "checksum failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "64c2d913fe8ed3b6c6518eedf4538255b989945c14c2a7d5cbff62a5e2120596" "checksum filetime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "da4b9849e77b13195302c174324b5ba73eec9b236b24c221a61000daefb95c5f" @@ -1208,11 +1264,11 @@ dependencies = [ "checksum libsodium-sys 0.1.0 (git+https://github.com/sodiumoxide/sodiumoxide)" = "" "checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" "checksum locale_config 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "14fbee0e39bc2dd6a2427c4fdea66e9826cc1fd09b0a0b7550359f5f6efe1dab" -"checksum lock_api 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "949826a5ccf18c1b3a7c3d57692778d21768b79e46eb9dd07bfc4c2160036c54" +"checksum lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "775751a3e69bde4df9b38dd00a1b5d6ac13791e4223d4a0506577f0dd27cfb7a" "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" -"checksum log 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "61bd98ae7f7b754bc53dca7d44b604f733c6bba044ea6f41bc8d89272d8161d2" +"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" "checksum memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a" -"checksum memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "796fba70e76612589ed2ce7f45282f5af869e0fdd7cc6199fa1aa1f1d591ba9d" +"checksum memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16" "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" "checksum mmap 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0bc85448a6006dd2ba26a385a564a8a0f1f2c7e78c70f1a70b2e0f4af286b823" "checksum murmurhash3 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a2983372caf4480544083767bf2d27defafe32af49ab4df3a0b7fc90793a3664" @@ -1220,28 +1276,29 @@ dependencies = [ "checksum nom 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05aec50c70fd288702bcd93284a8444607f3292dbdf2a30de5ea5dcdbe72287b" "checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea" "checksum num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" -"checksum num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "630de1ef5cc79d0cdd78b7e33b81f083cbfe90de0f4b2b2f07f905867c70e9fe" +"checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" -"checksum parking_lot 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "69376b761943787ebd5cc85a5bc95958651a22609c5c1c2b65de21786baec72b" -"checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" +"checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" +"checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" "checksum pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "deb73390ab68d81992bd994d145f697451bb0b54fd39738e72eef32458ad6907" "checksum peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" -"checksum pkg-config 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "104630aa1c83213cbc76db0703630fcb0421dac3585063be4ce9a8a2feeaa745" +"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "77997c53ae6edd6d187fec07ec41b207063b5ee6f33680e9fa86d405cdd313d4" "checksum proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "3d7b7eaaa90b4a90a932a9ea6666c95a389e424eff347f0f793979289429feee" "checksum quasi 0.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "18c45c4854d6d1cf5d531db97c75880feb91c958b0720f4ec1057135fec358b3" "checksum quasi_codegen 0.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "51b9e25fa23c044c1803f43ca59c98dac608976dd04ce799411edd58ece776d4" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" "checksum quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9949cfe66888ffe1d53e6ec9d9f3b70714083854be20fd5e271b232a017401e8" -"checksum quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dd636425967c33af890042c483632d33fa7a18f19ad1d7ea72e8998c6ef8dea5" -"checksum rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5" +"checksum quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "63b5829244f52738cfee93b3a165c1911388675be000c888d2fae620dee8fa5b" +"checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd" "checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" -"checksum rand_core 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "edecf0f94da5551fc9b492093e30b041a891657db7940ee221f9d2f66e82eef2" +"checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372" +"checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db" "checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" "checksum redox_users 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "214a97e49be64fd2c86f568dd0cb2c757d2cc53de95b273b6ad0a1c908482f26" "checksum regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384" -"checksum regex 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5bbbea44c5490a1e84357ff28b7d518b4619a159fed5d25f6c1de2d19cc42814" +"checksum regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2069749032ea3ec200ca51e4a31df41759190a88edca0d2d86ee8bedf7073341" "checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7" "checksum regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "747ba3b235651f6e2f67dfa8bcdcd073ddb7c243cb21c442fc12395dfcac212d" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" @@ -1250,48 +1307,52 @@ dependencies = [ "checksum runtime-fmt 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "647a821d66049faccc993fc3c379d1181b81a484097495cda79ffdb17b55b87f" "checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" +"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" "checksum scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" -"checksum serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)" = "6dfad05c8854584e5f72fb859385ecdfa03af69c3fd0572f0da2d4c95f060bdb" +"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +"checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef" "checksum serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)" = "adb6e51a6b3696b301bc221d785f898b4457c619b51d7ce195a6d20baecb37b3" "checksum serde_utils 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f6e0edb364c93646633800df969086bc7c5c25fb3f1eb57349990d1cb4cae4bc" -"checksum serde_yaml 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ef8099d3df28273c99a1728190c7a9f19d444c941044f64adf986bee7ec53051" -"checksum smallvec 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "211a489e65e94b103926d2054ae515a1cdb5d515ea0ef414fee23b7e043ce748" +"checksum serde_yaml 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a2054770c85c7f026ad772e31ff631e65e378154ee20e85d0ada8c6ed053e63a" +"checksum smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "153ffa32fd170e9944f7e0838edf824a754ec4c1fc64746fcc9fe1f8fa602e5d" "checksum sodiumoxide 0.1.0 (git+https://github.com/sodiumoxide/sodiumoxide)" = "" "checksum squash-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "76f31a010ae66493a57b16f02d7df88d966d78ce7f09d54d922a082954cfc7ee" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" -"checksum syn 0.15.14 (registry+https://github.com/rust-lang/crates.io-index)" = "baaba45c6bf60fe29aaf241fa33306c0b75c801edea8378263a8f043b09a5634" -"checksum synstructure 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ec37f4fab4bafaf6b5621c1d54e6aa5d4d059a8f84929e87abfdd7f9f04c6db2" +"checksum syn 0.15.16 (registry+https://github.com/rust-lang/crates.io-index)" = "0b78d53b5e1b6e63129140b1336877c3bddbae398c7956150396bdad0e28676c" +"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" "checksum syntex 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a8f5e3aaa79319573d19938ea38d068056b826db9883a5d47f86c1cecc688f0e" "checksum syntex_errors 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)" = "867cc5c2d7140ae7eaad2ae9e8bf39cb18a67ca651b7834f88d46ca98faadb9c" "checksum syntex_pos 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)" = "13ad4762fe52abc9f4008e85c4fb1b1fe3aa91ccb99ff4826a439c7c598e1047" "checksum syntex_syntax 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6e0e4dbae163dd98989464c23dd503161b338790640e11537686f2ef0f25c791" -"checksum tar 0.4.16 (registry+https://github.com/rust-lang/crates.io-index)" = "e8f41ca4a5689f06998f0247fcb60da6c760f1950cc9df2a10d71575ad0b062a" +"checksum tar 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)" = "83b0d14b53dbfd62681933fadd651e815f99e6084b649e049ab99296e05ab3de" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" "checksum term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "fa63644f74ce96fbeb9b794f66aff2a52d601cbd5e80f4b97123e3899f4570f1" -"checksum termcolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "722426c4a0539da2c4ffd9b419d90ad540b4cff4a053be9069c908d4d07e2836" +"checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" "checksum thread-scoped 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bcbb6aa301e5d3b0b5ef639c9a9c7e2f1c944f177b460c04dc24c69b1fa2bd99" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" "checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" -"checksum ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd2be2d6639d0f8fe6cdda291ad456e23629558d466e2789d2c3e9892bda285d" +"checksum ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d0f8bfa9ff0cadcd210129ad9d2c5f145c13e9ced3d3e5d948a6213487d52444" "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" "checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" -"checksum users 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "caa2760fcc10a6ae2c2a35d41c5d69827e4663f0d3889ecfb4d60b343f4139df" -"checksum utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e55124122" +"checksum users 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb3c80625ae5e77e1b402f8a0fa89afbd50622a6cae65128844720bd4e26b657" +"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" -"checksum version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7716c242968ee87e5542f8021178248f267f295a5c4803beae8b8b7fd9bc6051" +"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum which 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e84a603e7e0b1ce1aa1ee2b109c7be00155ce52df5081590d1ffb93f4f515cb2" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" -"checksum winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "773ef9dcc5f24b7d850d0ff101e542ff24c3b090a9768e03ff889fdef41f00fd" +"checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +"checksum winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "afc5508759c5bf4285e61feb862b6083c8480aec864fa17a81fdec6f69b461ab" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -"checksum wincolor 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b9dc3aa9dcda98b5a16150c54619c1ead22e3d3a5d458778ae914be760aa981a" +"checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" "checksum xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" -"checksum yaml-rust 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "57ab38ee1a4a266ed033496cf9af1828d8d6e6c1cfa5f643a2809effcae4d628" +"checksum yaml-rust 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "95acf0db5515d07da9965ec0e0ba6cc2d825e2caeb7303b66ca441729801254e" diff --git a/Cargo.toml b/Cargo.toml index 583d931..fc2ffdf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ lto = true [dependencies] serde = "^1.0" rmp-serde = "^0.13" -serde_yaml = "~0.7" +serde_yaml = "~0.8" serde_utils = "~0.6" serde_bytes = "~0.10" squash-sys = "~0.10" @@ -32,7 +32,7 @@ tar = "~0.4" xattr = "~0.2" crossbeam = "~0.4" pbr = "^1.0" -users = "~0.7" +users = "~0.8" time = "~0.1" libc = "~0.2" runtime-fmt = "~0.3" diff --git a/src/backups/backup.rs b/src/backups/backup.rs index 4fb1093..b9e3cbb 100644 --- a/src/backups/backup.rs +++ b/src/backups/backup.rs @@ -31,6 +31,13 @@ pub struct BackupOptions { pub excludes: Option } +pub struct PruneOptions { + pub daily: usize, + pub weekly: usize, + pub monthly: usize, + pub yearly: usize +} + pub enum DiffType { Add, @@ -49,8 +56,8 @@ pub trait RepositoryBackupIO { fn save_backup(&mut self, backup: &BackupFile, name: &str, lock: &BackupMode ) -> Result<(), RepositoryError>; fn delete_backup(&mut self, name: &str, lock: &BackupMode) -> Result<(), RepositoryError>; - fn prune_backups(&mut self, prefix: &str, daily: usize, weekly: usize, monthly: usize, - yearly: usize, force: bool, lock: &BackupMode) -> Result<(), RepositoryError>; + fn prune_backups(&mut self, prefix: &str, options: &PruneOptions, force: bool, + lock: &BackupMode) -> Result<(), RepositoryError>; fn restore_inode_tree>(&mut self, backup: &BackupFile, inode: Inode, path: P, lock: &OnlineMode) -> Result<(), RepositoryError>; fn create_backup_recurse>(&mut self, path: P, reference: Option<&Inode>, @@ -123,8 +130,8 @@ impl RepositoryBackupIO for Repository { } - fn prune_backups(&mut self, prefix: &str, daily: usize, weekly: usize, monthly: usize, - yearly: usize, force: bool, lock: &BackupMode) -> Result<(), RepositoryError> + fn prune_backups(&mut self, prefix: &str, options: &PruneOptions, force: bool, + lock: &BackupMode) -> Result<(), RepositoryError> { let mut backups = Vec::new(); let backup_map = match self.get_all_backups() { @@ -166,23 +173,23 @@ impl RepositoryBackupIO for Repository { } } } - if yearly > 0 { - mark_needed(&backups, &mut keep, yearly, |d| d.year()); + if options.yearly > 0 { + mark_needed(&backups, &mut keep, options.yearly, |d| d.year()); } - if monthly > 0 { - mark_needed(&backups, &mut keep, monthly, |d| (d.year(), d.month())); + if options.monthly > 0 { + mark_needed(&backups, &mut keep, options.monthly, |d| (d.year(), d.month())); } - if weekly > 0 { - mark_needed(&backups, &mut keep, weekly, |d| { + if options.weekly > 0 { + mark_needed(&backups, &mut keep, options.weekly, |d| { let week = d.iso_week(); (week.year(), week.week()) }); } - if daily > 0 { + if options.daily > 0 { mark_needed( &backups, &mut keep, - daily, + options.daily, |d| (d.year(), d.month(), d.day()) ); } @@ -247,7 +254,7 @@ impl RepositoryBackupIO for Repository { if let Some(user) = users::get_user_by_uid(inode.user) { backup.user_names.insert( inode.user, - user.name().to_string() + user.name().to_string_lossy().to_string() ); } else { tr_warn!("Failed to retrieve name of user {}", inode.user); @@ -257,7 +264,7 @@ impl RepositoryBackupIO for Repository { if let Some(group) = users::get_group_by_gid(inode.group) { backup.group_names.insert( inode.group, - group.name().to_string() + group.name().to_string_lossy().to_string() ); } else { tr_warn!("Failed to retrieve name of group {}", inode.group); @@ -467,7 +474,7 @@ impl RepositoryBackupIO for Repository { Ok(versions) } - #[allow(needless_pass_by_value)] + #[allow(clippy::needless_pass_by_value)] fn find_differences_recurse(&mut self, inode1: &Inode, inode2: &Inode, path: PathBuf, diffs: &mut Vec<(DiffType, PathBuf)>, lock: &OnlineMode ) -> Result<(), RepositoryError> { diff --git a/src/backups/mod.rs b/src/backups/mod.rs index 3e42642..4d3cf70 100644 --- a/src/backups/mod.rs +++ b/src/backups/mod.rs @@ -8,7 +8,7 @@ mod vacuum; mod metadata; mod layout; -pub use self::backup::{BackupOptions, BackupError, DiffType, RepositoryBackupIO}; +pub use self::backup::{BackupOptions, BackupError, DiffType, RepositoryBackupIO, PruneOptions}; pub use self::backup_file::{BackupFile, BackupFileError}; pub use self::inode::{Inode, FileData, FileType, InodeError}; pub use self::integrity::{InodeIntegrityError, RepositoryIntegrityIO, CheckOptions, IntegrityReport}; @@ -44,7 +44,7 @@ impl BackupRepository { Ok(BackupRepository(try!(Repository::create(layout, config, crypto, remote)))) } - #[allow(unknown_lints, useless_let_if_seq)] + #[allow(unknown_lints, clippy::useless_let_if_seq)] pub fn open>(path: P, online: bool) -> Result { let layout: Arc = Arc::new(path.as_ref().to_owned()); let crypto = Arc::new(try!(Crypto::open(layout.keys_path()))); @@ -155,10 +155,9 @@ impl BackupRepository { } #[inline] - pub fn prune_backups(&mut self, prefix: &str, daily: usize, weekly: usize, monthly: usize, - yearly: usize, force: bool) -> Result<(), RepositoryError> + pub fn prune_backups(&mut self, prefix: &str, options: &PruneOptions, force: bool) -> Result<(), RepositoryError> { - self.0.backup_mode(|r, l| r.prune_backups(prefix, daily, weekly, monthly, yearly, force, l)) + self.0.backup_mode(|r, l| r.prune_backups(prefix, options, force, l)) } #[inline] diff --git a/src/backups/mount.rs b/src/backups/mount.rs index 417fcae..32344f5 100644 --- a/src/backups/mount.rs +++ b/src/backups/mount.rs @@ -156,7 +156,7 @@ pub struct FuseFilesystem<'a> { } impl<'a> FuseFilesystem<'a> { - pub fn new(repository: &'a mut Repository, lock: &'a OnlineMode) -> Result { + pub fn new_filesystem(repository: &'a mut Repository, lock: &'a OnlineMode) -> Result { Ok(FuseFilesystem { next_id: 1, lock, @@ -179,7 +179,7 @@ impl<'a> FuseFilesystem<'a> { let inode = try!(repository.get_inode(&backup.root, lock)); backups.push((name, backup, inode)); } - let mut fs = try!(FuseFilesystem::new(repository, lock)); + let mut fs = try!(FuseFilesystem::new_filesystem(repository, lock)); let root = fs.add_virtual_directory("".to_string(), None); for (name, backup, mut inode) in backups { let mut parent = root.clone(); @@ -204,7 +204,7 @@ impl<'a> FuseFilesystem<'a> { backup: BackupFile, ) -> Result { let inode = try!(repository.get_inode(&backup.root, lock)); - let mut fs = try!(FuseFilesystem::new(repository, lock)); + let mut fs = try!(FuseFilesystem::new_filesystem(repository, lock)); fs.add_inode(inode, None, backup.user_names, backup.group_names); Ok(fs) } @@ -215,7 +215,7 @@ impl<'a> FuseFilesystem<'a> { backup: BackupFile, inode: Inode, ) -> Result { - let mut fs = try!(FuseFilesystem::new(repository, lock)); + let mut fs = try!(FuseFilesystem::new_filesystem(repository, lock)); fs.add_inode(inode, None, backup.user_names, backup.group_names); Ok(fs) } diff --git a/src/backups/tarfile.rs b/src/backups/tarfile.rs index ae30456..dee6004 100644 --- a/src/backups/tarfile.rs +++ b/src/backups/tarfile.rs @@ -31,7 +31,7 @@ impl PaxBuilder { max_len *= 10; } let len = rest_len + len_len; - write!(&mut self.0, "{} {}={}\n", len, key, value).unwrap(); + writeln!(&mut self.0, "{} {}={}", len, key, value).unwrap(); } fn as_bytes(&self) -> &[u8] { @@ -100,8 +100,8 @@ fn inode_from_entry(entry: &mut tar::Entry) -> Result Some(( @@ -375,11 +375,11 @@ impl RepositoryTarfileIO for Repository { try!(header.set_device_minor(minor)); } header.set_mode(inode.mode); - header.set_uid(inode.user); + header.set_uid(u64::from(inode.user)); if let Some(name) = backup.user_names.get(&inode.user) { header.set_username(name).ok(); } - header.set_gid(inode.group); + header.set_gid(u64::from(inode.group)); if let Some(name) = backup.group_names.get(&inode.group) { header.set_groupname(name).ok(); } diff --git a/src/cli/args.rs b/src/cli/args.rs index d222b85..41ffc8f 100644 --- a/src/cli/args.rs +++ b/src/cli/args.rs @@ -5,7 +5,7 @@ use std::path::{Path, PathBuf}; use log; use clap::{App, AppSettings, Arg, SubCommand}; -#[allow(option_option)] +#[allow(clippy::option_option)] pub enum Arguments { Init { repo_path: PathBuf, @@ -202,7 +202,7 @@ fn parse_repo_path( Ok((repo, backup, path)) } -#[allow(unknown_lints, needless_pass_by_value)] +#[allow(clippy::needless_pass_by_value)] fn validate_repo_path( repo_path: String, existing: bool, @@ -231,7 +231,7 @@ fn parse_filesize(num: &str) -> Result { Ok(num * factor) } -#[allow(unknown_lints, needless_pass_by_value)] +#[allow(clippy::needless_pass_by_value)] fn validate_filesize(val: String) -> Result<(), String> { parse_filesize(&val).map(|_| ()) } @@ -245,7 +245,7 @@ fn parse_num(num: &str) -> Result { } } -#[allow(unknown_lints, needless_pass_by_value)] +#[allow(clippy::needless_pass_by_value)] fn validate_num(val: String) -> Result<(), String> { parse_num(&val).map(|_| ()) } @@ -258,7 +258,7 @@ fn parse_chunker(val: &str) -> Result { } } -#[allow(unknown_lints, needless_pass_by_value)] +#[allow(clippy::needless_pass_by_value)] fn validate_chunker(val: String) -> Result<(), String> { parse_chunker(&val).map(|_| ()) } @@ -274,7 +274,7 @@ fn parse_compression(val: &str) -> Result, String> { } } -#[allow(unknown_lints, needless_pass_by_value)] +#[allow(clippy::needless_pass_by_value)] fn validate_compression(val: String) -> Result<(), String> { parse_compression(&val).map(|_| ()) } @@ -296,7 +296,7 @@ fn parse_public_key(val: &str) -> Result, String> { } } -#[allow(unknown_lints, needless_pass_by_value)] +#[allow(clippy::needless_pass_by_value)] fn validate_public_key(val: String) -> Result<(), String> { parse_public_key(&val).map(|_| ()) } @@ -309,7 +309,7 @@ fn parse_hash(val: &str) -> Result { } } -#[allow(unknown_lints, needless_pass_by_value)] +#[allow(clippy::needless_pass_by_value)] fn validate_hash(val: String) -> Result<(), String> { parse_hash(&val).map(|_| ()) } @@ -323,7 +323,7 @@ fn parse_bundle_id(val: &str) -> Result { } } -#[allow(unknown_lints, needless_pass_by_value)] +#[allow(clippy::needless_pass_by_value)] fn validate_existing_path(val: String) -> Result<(), String> { if !Path::new(&val).exists() { Err(tr!("Path does not exist").to_string()) @@ -332,7 +332,7 @@ fn validate_existing_path(val: String) -> Result<(), String> { } } -#[allow(unknown_lints, needless_pass_by_value)] +#[allow(clippy::needless_pass_by_value)] fn validate_existing_path_or_stdio(val: String) -> Result<(), String> { if val != "-" && !Path::new(&val).exists() { Err(tr!("Path does not exist").to_string()) @@ -342,7 +342,7 @@ fn validate_existing_path_or_stdio(val: String) -> Result<(), String> { } -#[allow(unknown_lints, cyclomatic_complexity)] +#[allow(clippy::cyclomatic_complexity)] pub fn parse() -> Result<(log::Level, Arguments), ErrorCode> { let args = App::new("zvault") .version(crate_version!()) diff --git a/src/cli/mod.rs b/src/cli/mod.rs index 9048baa..07d9be1 100644 --- a/src/cli/mod.rs +++ b/src/cli/mod.rs @@ -461,7 +461,7 @@ fn print_analysis(analysis: &HashMap) { let mut data_total = 0; for bundle in analysis.values() { data_total += bundle.info.encoded_size; - #[allow(unknown_lints, needless_range_loop)] + #[allow(clippy::needless_range_loop)] for i in 0..11 { if bundle.get_usage_ratio() <= i as f32 * 0.1 { reclaim_space[i] += bundle.get_unused_size(); @@ -477,7 +477,7 @@ fn print_analysis(analysis: &HashMap) { used as f32 / data_total as f32 * 100.0 ); tr_println!("Reclaimable space (depending on vacuum ratio)"); - #[allow(unknown_lints, needless_range_loop)] + #[allow(clippy::needless_range_loop)] for i in 0..11 { tr_println!( " - ratio={:3}: {:>10}, {:4.1} %, rewriting {:>10}", @@ -502,9 +502,13 @@ fn print_duplicates(dups: Vec<(Vec, u64)>) { fn print_integrity_report_module(name: &str, module: &ModuleIntegrityReport) -> usize { let found = module.errors_fixed.len() + module.errors_unfixed.len(); let fixed = module.errors_fixed.len(); - tr_println!("{}: {} errors found, {} corrected:", name, found, fixed); + if found > 0 { + tr_println!("{}: {} errors found, {} corrected:", name, found, fixed); + } else { + tr_println!("{}: no errors found", name); + } for e in &module.errors_fixed { - println!("{}", e); + println!("[fixed] {}", e); } for e in &module.errors_unfixed { println!("{}", e); @@ -533,7 +537,7 @@ fn print_integrity_report(report: &IntegrityReport) { -#[allow(unknown_lints, cyclomatic_complexity)] +#[allow(clippy::cyclomatic_complexity)] pub fn run() -> Result<(), ErrorCode> { let (log_level, args) = try!(args::parse()); if let Err(err) = logger::init(log_level) { @@ -810,8 +814,9 @@ pub fn run() -> Result<(), ErrorCode> { tr_error!("This would remove all those backups"); return Err(ErrorCode::UnsafeArgs); } + let options = PruneOptions { daily, weekly, monthly, yearly }; checked!( - repo.prune_backups(&prefix, daily, weekly, monthly, yearly, force), + repo.prune_backups(&prefix, &options, force), "prune backups", ErrorCode::PruneRun ); diff --git a/src/main.rs b/src/main.rs index 2c6d74d..8e53b57 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,5 @@ #![recursion_limit="128"] -#![allow(unknown_lints, float_cmp)] +#![allow(clippy::float_cmp)] #![cfg_attr(feature = "bench", feature(test))] #[cfg(feature = "bench")] extern crate test; @@ -50,6 +50,8 @@ mod backups; use std::process::exit; +// TODO: functional tests + fn main() { match cli::run() { Ok(()) => exit(0), diff --git a/src/prelude.rs b/src/prelude.rs index 7c2e341..55ac3e1 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -10,7 +10,8 @@ pub use repository::index::{Index, IndexError, IndexStatistics}; pub use backups::mount::FuseFilesystem; pub use backups::{BackupFile, BackupFileError, Inode, FileType, FileData, InodeError, BackupError, BackupOptions, DiffType, InodeIntegrityError, BackupRepositoryLayout, - RepositoryBackupIO, RepositoryMetadataIO, CheckOptions, IntegrityReport}; + RepositoryBackupIO, RepositoryMetadataIO, CheckOptions, IntegrityReport, + PruneOptions}; pub use translation::CowStr; pub use backups::BackupRepository; diff --git a/src/repository/bundledb/db.rs b/src/repository/bundledb/db.rs index 46295a5..b6f74f8 100644 --- a/src/repository/bundledb/db.rs +++ b/src/repository/bundledb/db.rs @@ -57,7 +57,7 @@ quick_error!{ } -#[allow(needless_pass_by_value)] +#[allow(clippy::needless_pass_by_value)] fn load_bundles( path: &Path, base: &Path, @@ -257,7 +257,7 @@ impl BundleDb { Ok(self_) } - pub fn create(layout: Arc) -> Result<(), BundleDbError> { + pub fn create(layout: &Arc) -> Result<(), BundleDbError> { try!(fs::create_dir_all(layout.remote_bundles_path()).context( &layout.remote_bundles_path() as &Path @@ -290,7 +290,7 @@ impl BundleDb { encryption: Option, _lock: &BackupMode ) -> Result { - Ok(try!(BundleWriter::new( + Ok(try!(BundleWriter::new_writer( self.layout.clone(), mode, hash_method, @@ -365,7 +365,7 @@ impl BundleDb { .unwrap() .to_path_buf(); if self.uploader.is_none() { - self.uploader = Some(BundleUploader::new(5)); + self.uploader = Some(BundleUploader::new_uploader(5)); } try!(self.uploader.as_ref().unwrap().queue(src_path, dst_path)); self.remote_bundles.insert(bundle.id(), bundle.clone()); @@ -542,15 +542,15 @@ impl BundleDb { } BundleStatistics { hash_methods, compressions, encryptions, - raw_size: ValueStats::from_iter(|| bundles.iter().map(|b| b.raw_size as f32)), - encoded_size: ValueStats::from_iter(|| bundles.iter().map(|b| b.encoded_size as f32)), - chunk_count: ValueStats::from_iter(|| bundles.iter().map(|b| b.chunk_count as f32)), - raw_size_meta: ValueStats::from_iter(|| bundles_meta.iter().map(|b| b.raw_size as f32)), - encoded_size_meta: ValueStats::from_iter(|| bundles_meta.iter().map(|b| b.encoded_size as f32)), - chunk_count_meta: ValueStats::from_iter(|| bundles_meta.iter().map(|b| b.chunk_count as f32)), - raw_size_data: ValueStats::from_iter(|| bundles_data.iter().map(|b| b.raw_size as f32)), - encoded_size_data: ValueStats::from_iter(|| bundles_data.iter().map(|b| b.encoded_size as f32)), - chunk_count_data: ValueStats::from_iter(|| bundles_data.iter().map(|b| b.chunk_count as f32)) + raw_size: ValueStats::from_sequence(|| bundles.iter().map(|b| b.raw_size as f32)), + encoded_size: ValueStats::from_sequence(|| bundles.iter().map(|b| b.encoded_size as f32)), + chunk_count: ValueStats::from_sequence(|| bundles.iter().map(|b| b.chunk_count as f32)), + raw_size_meta: ValueStats::from_sequence(|| bundles_meta.iter().map(|b| b.raw_size as f32)), + encoded_size_meta: ValueStats::from_sequence(|| bundles_meta.iter().map(|b| b.encoded_size as f32)), + chunk_count_meta: ValueStats::from_sequence(|| bundles_meta.iter().map(|b| b.chunk_count as f32)), + raw_size_data: ValueStats::from_sequence(|| bundles_data.iter().map(|b| b.raw_size as f32)), + encoded_size_data: ValueStats::from_sequence(|| bundles_data.iter().map(|b| b.encoded_size as f32)), + chunk_count_data: ValueStats::from_sequence(|| bundles_data.iter().map(|b| b.chunk_count as f32)) } } } diff --git a/src/repository/bundledb/reader.rs b/src/repository/bundledb/reader.rs index 67571c3..e7efba9 100644 --- a/src/repository/bundledb/reader.rs +++ b/src/repository/bundledb/reader.rs @@ -90,7 +90,7 @@ impl BundleReader { self.info.id.clone() } - #[allow(needless_pass_by_value)] + #[allow(clippy::needless_pass_by_value)] fn load_header>( path: P, crypto: Arc, diff --git a/src/repository/bundledb/uploader.rs b/src/repository/bundledb/uploader.rs index 1b7865b..c3d7c43 100644 --- a/src/repository/bundledb/uploader.rs +++ b/src/repository/bundledb/uploader.rs @@ -18,7 +18,7 @@ pub struct BundleUploader { } impl BundleUploader { - pub fn new(capacity: usize) -> Arc { + pub fn new_uploader(capacity: usize) -> Arc { let self_ = Arc::new(BundleUploader { capacity, error_present: AtomicBool::new(false), diff --git a/src/repository/bundledb/writer.rs b/src/repository/bundledb/writer.rs index a42da37..817094d 100644 --- a/src/repository/bundledb/writer.rs +++ b/src/repository/bundledb/writer.rs @@ -59,7 +59,7 @@ pub struct BundleWriter { } impl BundleWriter { - pub fn new( + pub fn new_writer( layout: Arc, mode: BundleMode, hash_method: HashMethod, diff --git a/src/repository/chunking/ae.rs b/src/repository/chunking/ae.rs index 720fbc4..36d413b 100644 --- a/src/repository/chunking/ae.rs +++ b/src/repository/chunking/ae.rs @@ -26,7 +26,7 @@ impl AeChunker { } impl Chunker for AeChunker { - #[allow(unknown_lints,explicit_counter_loop)] + #[allow(clippy::explicit_counter_loop)] fn chunk(&mut self, r: &mut Read, w: &mut Write) -> Result { let mut max; let mut pos = 0; @@ -44,7 +44,7 @@ impl Chunker for AeChunker { if val <= max_val { if pos == max_pos + self.window_size { // Write all bytes from this chunk out to sink and store rest for next chunk - try!(w.write_all(&self.buffer[..i+1]).map_err(ChunkerError::Write)); + try!(w.write_all(&self.buffer[..=i]).map_err(ChunkerError::Write)); unsafe { ptr::copy(self.buffer[i+1..].as_ptr(), self.buffer.as_mut_ptr(), max-i-1) }; self.buffered = max-i-1; return Ok(ChunkerStatus::Continue); diff --git a/src/repository/chunking/fixed.rs b/src/repository/chunking/fixed.rs index 67bf261..320f89e 100644 --- a/src/repository/chunking/fixed.rs +++ b/src/repository/chunking/fixed.rs @@ -18,7 +18,7 @@ impl FixedChunker { } impl Chunker for FixedChunker { - #[allow(unknown_lints,explicit_counter_loop)] + #[allow(clippy::explicit_counter_loop)] fn chunk(&mut self, r: &mut Read, w: &mut Write) -> Result { let mut todo = self.size; loop { diff --git a/src/repository/chunking/rabin.rs b/src/repository/chunking/rabin.rs index e843e54..46ec6aa 100644 --- a/src/repository/chunking/rabin.rs +++ b/src/repository/chunking/rabin.rs @@ -66,7 +66,7 @@ impl RabinChunker { } impl Chunker for RabinChunker { - #[allow(unknown_lints,explicit_counter_loop)] + #[allow(clippy::explicit_counter_loop)] fn chunk(&mut self, r: &mut Read, w: &mut Write) -> Result { let mut max; let mut hash = 0u32; @@ -82,7 +82,7 @@ impl Chunker for RabinChunker { for i in 0..max { let val = self.buffer[i]; if pos >= self.max_size { - try!(w.write_all(&self.buffer[..i+1]).map_err(ChunkerError::Write)); + try!(w.write_all(&self.buffer[..=i]).map_err(ChunkerError::Write)); unsafe { ptr::copy(self.buffer[i+1..].as_ptr(), self.buffer.as_mut_ptr(), max-i-1) }; self.buffered = max-i-1; return Ok(ChunkerStatus::Continue); @@ -93,7 +93,7 @@ impl Chunker for RabinChunker { let take = window.pop_front().unwrap(); hash = hash.wrapping_sub(self.table[take as usize]); if pos >= self.min_size && ((hash ^ self.seed) & self.chunk_mask) == 0 { - try!(w.write_all(&self.buffer[..i+1]).map_err(ChunkerError::Write)); + try!(w.write_all(&self.buffer[..=i]).map_err(ChunkerError::Write)); unsafe { ptr::copy(self.buffer[i+1..].as_ptr(), self.buffer.as_mut_ptr(), max-i-1) }; self.buffered = max-i-1; return Ok(ChunkerStatus::Continue); diff --git a/src/repository/config.rs b/src/repository/config.rs index 77d8219..97c59d9 100644 --- a/src/repository/config.rs +++ b/src/repository/config.rs @@ -201,6 +201,7 @@ impl Config { }) } + #[allow(clippy::trivially_copy_pass_by_ref)] fn to_yaml(&self) -> ConfigYaml { ConfigYaml { compression: self.compression.as_ref().map(|c| c.to_yaml()), diff --git a/src/repository/index/mod.rs b/src/repository/index/mod.rs index 2522ed8..12b342d 100644 --- a/src/repository/index/mod.rs +++ b/src/repository/index/mod.rs @@ -170,7 +170,7 @@ unsafe fn mmap_as_ref(mmap: &MemoryMap, len: usize) -> (&'static mut Heade tr_panic!("Memory map too small"); } let header = &mut *(mmap.data() as *mut Header); - let ptr = mmap.data().offset(mem::size_of::
() as isize) as *mut Entry; + let ptr = mmap.data().add(mem::size_of::
()) as *mut Entry; let data = slice::from_raw_parts_mut(ptr, len); (header, data) } @@ -188,7 +188,7 @@ pub struct Index { } impl Index { - pub fn new(path: &Path, create: bool, magic: &[u8; 7], version: u8) -> Result { + pub fn new_index(path: &Path, create: bool, magic: [u8; 7], version: u8) -> Result { let fd = try!(OpenOptions::new().read(true).write(true).create(create).open(path)); if create { try!(Self::resize_fd(&fd, INITIAL_SIZE)); @@ -209,7 +209,7 @@ impl Index { unsafe { ptr::write(d, Entry::default()) } } } - if header.magic != *magic { + if header.magic != magic { return Err(IndexError::WrongMagic); } if header.version != version { @@ -234,13 +234,13 @@ impl Index { /// This method is unsafe as there is no way to guarantee that the contents of the file are /// valid objects. #[inline] - pub unsafe fn open>(path: P, magic: &[u8; 7], version: u8) -> Result { - Index::new(path.as_ref(), false, magic, version) + pub unsafe fn open>(path: P, magic: [u8; 7], version: u8) -> Result { + Index::new_index(path.as_ref(), false, magic, version) } #[inline] - pub fn create>(path: P, magic: &[u8; 7], version: u8) -> Result { - Index::new(path.as_ref(), true, magic, version) + pub fn create>(path: P, magic: [u8; 7], version: u8) -> Result { + Index::new_index(path.as_ref(), true, magic, version) } #[inline] @@ -268,7 +268,7 @@ impl Index { self.max_entries = (capacity as f64 * MAX_USAGE) as usize; } - #[allow(redundant_field_names)] + #[allow(clippy::redundant_field_names)] fn reinsert(&mut self, start: usize, end: usize) -> Result<(), IndexError> { for pos in start..end { let key; @@ -585,7 +585,7 @@ impl Index { count: self.entries, capacity: self.capacity, size: self.size(), - displacement: ValueStats::from_iter(|| self.data.iter().enumerate().filter( + displacement: ValueStats::from_sequence(|| self.data.iter().enumerate().filter( |&(_, entry)| entry.is_used()).map( |(index, entry)| self.get_displacement(entry, index) as f32)) } diff --git a/src/repository/integrity.rs b/src/repository/integrity.rs index 297ddbc..73aeff6 100644 --- a/src/repository/integrity.rs +++ b/src/repository/integrity.rs @@ -84,14 +84,14 @@ impl Repository { let mut errors = vec![]; for (_id, bundle_id) in self.bundle_map.bundles() { if self.bundles.get_bundle_info(&bundle_id).is_none() { - errors.push(IntegrityError::MissingBundle(bundle_id).into()); + errors.push(IntegrityError::MissingBundle(bundle_id)); } } if self.bundle_map.len() < self.bundles.len() { - errors.push(IntegrityError::RemoteBundlesNotInMap.into()); + errors.push(IntegrityError::RemoteBundlesNotInMap); } if self.bundle_map.len() > self.bundles.len() { - errors.push(IntegrityError::MapContainsDuplicates.into()); + errors.push(IntegrityError::MapContainsDuplicates); } ModuleIntegrityReport { errors_fixed: vec![], errors_unfixed: errors } } diff --git a/src/repository/mod.rs b/src/repository/mod.rs index 60a0396..788f931 100644 --- a/src/repository/mod.rs +++ b/src/repository/mod.rs @@ -99,17 +99,17 @@ impl Repository { try!(fs::create_dir_all(layout.remote_locks_path())); let mock_lock = Lock; try!(config.save(layout.config_path(), &mock_lock)); - try!(BundleDb::create(layout.clone())); + try!(BundleDb::create(&layout)); try!(Index::::create( layout.index_path(), - &INDEX_MAGIC, + INDEX_MAGIC, INDEX_VERSION )); try!(BundleMap::create().save(layout.bundle_map_path(), &mock_lock)); Self::open(layout, crypto, true) } - #[allow(unknown_lints, useless_let_if_seq)] + #[allow(clippy::useless_let_if_seq)] pub fn open(layout: Arc, crypto: Arc, read_only: bool) -> Result { if !layout.remote_exists() { return Err(RepositoryError::NoRemote); @@ -124,14 +124,14 @@ impl Repository { let mut rebuild_index = false; //FIXME: why is this never set? let /*mut*/ rebuild_bundle_map = false; - let index = match unsafe { Index::open(layout.index_path(), &INDEX_MAGIC, INDEX_VERSION) } { + let index = match unsafe { Index::open(layout.index_path(), INDEX_MAGIC, INDEX_VERSION) } { Ok(index) => index, Err(err) => { tr_error!("Failed to load local index:\n\tcaused by: {}", err); if read_only { return Err(err.into()); } - try!(Index::create(layout.index_path(), &INDEX_MAGIC, INDEX_VERSION)) + try!(Index::create(layout.index_path(), INDEX_MAGIC, INDEX_VERSION)) } }; let bundle_map = match BundleMap::load(layout.bundle_map_path(), &mock_lock) { @@ -172,7 +172,7 @@ impl Repository { } //FIXME: use or remove - #[allow(dead_code)] + #[allow(dead_code, clippy::useless_let_if_seq)] pub fn synchronize(&mut self, lock: &OnlineMode) -> Result<(), RepositoryError> { let (new, gone) = try!(self.bundles.synchronize(lock)); let mut save_bundle_map = false; @@ -439,12 +439,14 @@ impl Repository { pub fn online_mode Result> (&mut self, f: F) -> Result { let _local_lock = try!(self.local_locks.lock(true)); let _remote_lock = try!(self.remote_locks.lock(false)); + try!(self.synchronize(&Lock)); f(self, &Lock) } pub fn backup_mode Result> (&mut self, f: F) -> Result { let _local_lock = try!(self.local_locks.lock(true)); let _remote_lock = try!(self.remote_locks.lock(false)); + try!(self.synchronize(&Lock)); try!(self.create_dirty_file()); let res = f(self, &Lock); try!(self.flush(&Lock)); @@ -457,6 +459,7 @@ impl Repository { pub fn vacuum_mode Result> (&mut self, f: F) -> Result { let _local_lock = try!(self.local_locks.lock(true)); let _remote_lock = try!(self.remote_locks.lock(true)); + try!(self.synchronize(&Lock)); try!(self.create_dirty_file()); let res = f(self, &Lock); try!(self.flush(&Lock)); diff --git a/src/translation.rs b/src/translation.rs index d82acd7..961b505 100644 --- a/src/translation.rs +++ b/src/translation.rs @@ -31,7 +31,7 @@ struct MoFile<'a> { } impl<'a> MoFile<'a> { - fn new(data: &'a [u8]) -> Result { + fn new_file(data: &'a [u8]) -> Result { if data.len() < 20 { return Err(()); } @@ -102,7 +102,7 @@ impl Translation { pub fn from_mo_data(data: &'static[u8]) -> Self { let mut translation = Translation::new(); - match MoFile::new(data) { + match MoFile::new_file(data) { Ok(mo_file) => for (orig, trans) in mo_file { translation.set(orig, trans); } @@ -116,7 +116,7 @@ impl Translation { if let Ok(mut file) = File::open(&path) { let mut data = vec![]; if file.read_to_end(&mut data).is_ok() { - match MoFile::new(&data) { + match MoFile::new_file(&data) { Ok(mo_file) => for (orig, trans) in mo_file { translation.set(orig.to_string(), trans.to_string()); } diff --git a/src/util/cli.rs b/src/util/cli.rs index 657a83b..59b658b 100644 --- a/src/util/cli.rs +++ b/src/util/cli.rs @@ -49,7 +49,7 @@ pub struct ProgressIter { } impl ProgressIter { - #[allow(blacklisted_name)] + #[allow(clippy::blacklisted_name)] pub fn new(msg: &str, max: usize, inner: T) -> Self { let mut bar = pbr::ProgressBar::new(max as u64); let msg = format!("{}: ", msg); diff --git a/src/util/compression.rs b/src/util/compression.rs index 402a60c..8a28673 100644 --- a/src/util/compression.rs +++ b/src/util/compression.rs @@ -327,7 +327,7 @@ mod tests { ); } - #[allow(dead_code, needless_range_loop)] + #[allow(dead_code, clippy::needless_range_loop)] fn test_data(n: usize) -> Vec { let mut input = vec![0; n]; for i in 0..input.len() { @@ -339,7 +339,7 @@ mod tests { #[allow(dead_code)] fn test_compression(method: &str, min_lvl: u8, max_lvl: u8) { let input = test_data(16 * 1024); - for i in min_lvl..max_lvl + 1 { + for i in min_lvl..=max_lvl { let method = Compression::from_string(&format!("{}/{}", method, i)).unwrap(); println!("{}", method.to_string()); let compressed = method.compress(&input).unwrap(); @@ -374,7 +374,7 @@ mod tests { #[allow(dead_code)] fn test_stream_compression(method: &str, min_lvl: u8, max_lvl: u8) { let input = test_data(512 * 1024); - for i in min_lvl..max_lvl + 1 { + for i in min_lvl..=max_lvl { let method = Compression::from_string(&format!("{}/{}", method, i)).unwrap(); println!("{}", method.to_string()); let mut compressor = method.compress_stream().unwrap(); @@ -426,7 +426,7 @@ mod benches { use test::Bencher; - #[allow(dead_code, needless_range_loop)] + #[allow(dead_code, clippy::needless_range_loop)] fn test_data(n: usize) -> Vec { let mut input = vec![0; n]; for i in 0..input.len() { diff --git a/src/util/encryption.rs b/src/util/encryption.rs index c863903..d0386e2 100644 --- a/src/util/encryption.rs +++ b/src/util/encryption.rs @@ -56,7 +56,7 @@ quick_error!{ #[derive(Clone, Debug, Eq, PartialEq, Hash)] -#[allow(unknown_lints, non_camel_case_types)] +#[allow(clippy::non_camel_case_types)] pub enum EncryptionMethod { Sodium } @@ -397,7 +397,7 @@ mod benches { use test::Bencher; - #[allow(dead_code, needless_range_loop)] + #[allow(dead_code, clippy::needless_range_loop)] fn test_data(n: usize) -> Vec { let mut input = vec![0; n]; for i in 0..input.len() { diff --git a/src/util/hash.rs b/src/util/hash.rs index ea95e6b..22ab861 100644 --- a/src/util/hash.rs +++ b/src/util/hash.rs @@ -118,8 +118,9 @@ serde_impl!(HashMethod(u64) { impl HashMethod { #[inline] - pub fn hash(&self, data: &[u8]) -> Hash { - match *self { + #[allow(clippy::transmute_ptr_to_ptr)] + pub fn hash(self, data: &[u8]) -> Hash { + match self { HashMethod::Blake2 => { let hash = blake2b(16, &[], data); let hash = @@ -146,8 +147,8 @@ impl HashMethod { } #[inline] - pub fn name(&self) -> &'static str { - match *self { + pub fn name(self) -> &'static str { + match self { HashMethod::Blake2 => "blake2", HashMethod::Murmur3 => "murmur3", } @@ -210,7 +211,7 @@ mod benches { use test::Bencher; - #[allow(dead_code, needless_range_loop)] + #[allow(dead_code, clippy::needless_range_loop)] fn test_data(n: usize) -> Vec { let mut input = vec![0; n]; for i in 0..input.len() { diff --git a/src/util/statistics.rs b/src/util/statistics.rs index 71b40df..8b8ee59 100644 --- a/src/util/statistics.rs +++ b/src/util/statistics.rs @@ -15,7 +15,7 @@ pub struct ValueStats { } impl ValueStats { - pub fn from_iter, F: Fn() -> T>(iter: F) -> ValueStats { + pub fn from_sequence, F: Fn() -> T>(iter: F) -> ValueStats { let mut stats = ValueStats::default(); stats.min = ::std::f32::INFINITY; let mut sum = 0.0f64;