├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md └── src └── main.rs /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | **/*.rs.bk 3 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | name = "adler32" 3 | version = "1.0.3" 4 | source = "registry+https://github.com/rust-lang/crates.io-index" 5 | 6 | [[package]] 7 | name = "aho-corasick" 8 | version = "0.6.10" 9 | source = "registry+https://github.com/rust-lang/crates.io-index" 10 | dependencies = [ 11 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 12 | ] 13 | 14 | [[package]] 15 | name = "ansi_term" 16 | version = "0.11.0" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | dependencies = [ 19 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 20 | ] 21 | 22 | [[package]] 23 | name = "atty" 24 | version = "0.2.11" 25 | source = "registry+https://github.com/rust-lang/crates.io-index" 26 | dependencies = [ 27 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 28 | "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 29 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 30 | ] 31 | 32 | [[package]] 33 | name = "autocfg" 34 | version = "0.1.2" 35 | source = "registry+https://github.com/rust-lang/crates.io-index" 36 | 37 | [[package]] 38 | name = "backtrace" 39 | version = "0.3.14" 40 | source = "registry+https://github.com/rust-lang/crates.io-index" 41 | dependencies = [ 42 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 43 | "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", 44 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 45 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 46 | "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", 47 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 48 | ] 49 | 50 | [[package]] 51 | name = "backtrace-sys" 52 | version = "0.1.28" 53 | source = "registry+https://github.com/rust-lang/crates.io-index" 54 | dependencies = [ 55 | "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", 56 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 57 | ] 58 | 59 | [[package]] 60 | name = "bitflags" 61 | version = "1.0.4" 62 | source = "registry+https://github.com/rust-lang/crates.io-index" 63 | 64 | [[package]] 65 | name = "build_const" 66 | version = "0.2.1" 67 | source = "registry+https://github.com/rust-lang/crates.io-index" 68 | 69 | [[package]] 70 | name = "byteorder" 71 | version = "1.3.1" 72 | source = "registry+https://github.com/rust-lang/crates.io-index" 73 | 74 | [[package]] 75 | name = "bytesize" 76 | version = "1.0.0" 77 | source = "registry+https://github.com/rust-lang/crates.io-index" 78 | 79 | [[package]] 80 | name = "cargo" 81 | version = "0.34.0" 82 | source = "registry+https://github.com/rust-lang/crates.io-index" 83 | dependencies = [ 84 | "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 85 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 86 | "bytesize 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 87 | "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", 88 | "core-foundation 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", 89 | "crates-io 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)", 90 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 91 | "crypto-hash 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 92 | "curl 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", 93 | "curl-sys 0.4.16 (registry+https://github.com/rust-lang/crates.io-index)", 94 | "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", 95 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 96 | "filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", 97 | "flate2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 98 | "fs2 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", 99 | "fwdansi 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 100 | "git2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 101 | "git2-curl 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 102 | "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 103 | "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 104 | "home 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", 105 | "ignore 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 106 | "im-rc 12.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 107 | "jobserver 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 108 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 109 | "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 110 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 111 | "libgit2-sys 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)", 112 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 113 | "miow 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 114 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 115 | "opener 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 116 | "rustc-workspace-hack 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 117 | "rustfix 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 118 | "same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 119 | "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 120 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", 121 | "serde_ignored 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 122 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", 123 | "shell-escape 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 124 | "tar 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)", 125 | "tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)", 126 | "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 127 | "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", 128 | "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 129 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 130 | "url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 131 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 132 | ] 133 | 134 | [[package]] 135 | name = "cargo-feature-analyst" 136 | version = "0.1.0" 137 | dependencies = [ 138 | "cargo 0.34.0 (registry+https://github.com/rust-lang/crates.io-index)", 139 | "structopt 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 140 | ] 141 | 142 | [[package]] 143 | name = "cc" 144 | version = "1.0.30" 145 | source = "registry+https://github.com/rust-lang/crates.io-index" 146 | 147 | [[package]] 148 | name = "cfg-if" 149 | version = "0.1.7" 150 | source = "registry+https://github.com/rust-lang/crates.io-index" 151 | 152 | [[package]] 153 | name = "clap" 154 | version = "2.32.0" 155 | source = "registry+https://github.com/rust-lang/crates.io-index" 156 | dependencies = [ 157 | "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 158 | "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 159 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 160 | "strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 161 | "textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 162 | "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 163 | "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", 164 | ] 165 | 166 | [[package]] 167 | name = "cloudabi" 168 | version = "0.0.3" 169 | source = "registry+https://github.com/rust-lang/crates.io-index" 170 | dependencies = [ 171 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 172 | ] 173 | 174 | [[package]] 175 | name = "commoncrypto" 176 | version = "0.2.0" 177 | source = "registry+https://github.com/rust-lang/crates.io-index" 178 | dependencies = [ 179 | "commoncrypto-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 180 | ] 181 | 182 | [[package]] 183 | name = "commoncrypto-sys" 184 | version = "0.2.0" 185 | source = "registry+https://github.com/rust-lang/crates.io-index" 186 | dependencies = [ 187 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 188 | ] 189 | 190 | [[package]] 191 | name = "core-foundation" 192 | version = "0.6.3" 193 | source = "registry+https://github.com/rust-lang/crates.io-index" 194 | dependencies = [ 195 | "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 196 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 197 | ] 198 | 199 | [[package]] 200 | name = "core-foundation-sys" 201 | version = "0.6.2" 202 | source = "registry+https://github.com/rust-lang/crates.io-index" 203 | 204 | [[package]] 205 | name = "crates-io" 206 | version = "0.22.0" 207 | source = "registry+https://github.com/rust-lang/crates.io-index" 208 | dependencies = [ 209 | "curl 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", 210 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 211 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", 212 | "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", 213 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", 214 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 215 | ] 216 | 217 | [[package]] 218 | name = "crc" 219 | version = "1.8.1" 220 | source = "registry+https://github.com/rust-lang/crates.io-index" 221 | dependencies = [ 222 | "build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 223 | ] 224 | 225 | [[package]] 226 | name = "crc32fast" 227 | version = "1.2.0" 228 | source = "registry+https://github.com/rust-lang/crates.io-index" 229 | dependencies = [ 230 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 231 | ] 232 | 233 | [[package]] 234 | name = "crossbeam-channel" 235 | version = "0.3.8" 236 | source = "registry+https://github.com/rust-lang/crates.io-index" 237 | dependencies = [ 238 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 239 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", 240 | ] 241 | 242 | [[package]] 243 | name = "crossbeam-utils" 244 | version = "0.6.5" 245 | source = "registry+https://github.com/rust-lang/crates.io-index" 246 | dependencies = [ 247 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 248 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 249 | ] 250 | 251 | [[package]] 252 | name = "crypto-hash" 253 | version = "0.3.3" 254 | source = "registry+https://github.com/rust-lang/crates.io-index" 255 | dependencies = [ 256 | "commoncrypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 257 | "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 258 | "openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)", 259 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 260 | ] 261 | 262 | [[package]] 263 | name = "curl" 264 | version = "0.4.19" 265 | source = "registry+https://github.com/rust-lang/crates.io-index" 266 | dependencies = [ 267 | "curl-sys 0.4.16 (registry+https://github.com/rust-lang/crates.io-index)", 268 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 269 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 270 | "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 271 | "openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)", 272 | "schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", 273 | "socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 274 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 275 | ] 276 | 277 | [[package]] 278 | name = "curl-sys" 279 | version = "0.4.16" 280 | source = "registry+https://github.com/rust-lang/crates.io-index" 281 | dependencies = [ 282 | "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", 283 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 284 | "libnghttp2-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 285 | "libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", 286 | "openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)", 287 | "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 288 | "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 289 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 290 | ] 291 | 292 | [[package]] 293 | name = "env_logger" 294 | version = "0.6.1" 295 | source = "registry+https://github.com/rust-lang/crates.io-index" 296 | dependencies = [ 297 | "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 298 | "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 299 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 300 | "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 301 | "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 302 | ] 303 | 304 | [[package]] 305 | name = "failure" 306 | version = "0.1.5" 307 | source = "registry+https://github.com/rust-lang/crates.io-index" 308 | dependencies = [ 309 | "backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 310 | "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 311 | ] 312 | 313 | [[package]] 314 | name = "failure_derive" 315 | version = "0.1.5" 316 | source = "registry+https://github.com/rust-lang/crates.io-index" 317 | dependencies = [ 318 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", 319 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", 320 | "syn 0.15.28 (registry+https://github.com/rust-lang/crates.io-index)", 321 | "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", 322 | ] 323 | 324 | [[package]] 325 | name = "filetime" 326 | version = "0.2.4" 327 | source = "registry+https://github.com/rust-lang/crates.io-index" 328 | dependencies = [ 329 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 330 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 331 | "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", 332 | ] 333 | 334 | [[package]] 335 | name = "flate2" 336 | version = "1.0.6" 337 | source = "registry+https://github.com/rust-lang/crates.io-index" 338 | dependencies = [ 339 | "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 340 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 341 | "libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", 342 | "miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", 343 | "miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 344 | ] 345 | 346 | [[package]] 347 | name = "fnv" 348 | version = "1.0.6" 349 | source = "registry+https://github.com/rust-lang/crates.io-index" 350 | 351 | [[package]] 352 | name = "foreign-types" 353 | version = "0.3.2" 354 | source = "registry+https://github.com/rust-lang/crates.io-index" 355 | dependencies = [ 356 | "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 357 | ] 358 | 359 | [[package]] 360 | name = "foreign-types-shared" 361 | version = "0.1.1" 362 | source = "registry+https://github.com/rust-lang/crates.io-index" 363 | 364 | [[package]] 365 | name = "fs2" 366 | version = "0.4.3" 367 | source = "registry+https://github.com/rust-lang/crates.io-index" 368 | dependencies = [ 369 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 370 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 371 | ] 372 | 373 | [[package]] 374 | name = "fuchsia-cprng" 375 | version = "0.1.1" 376 | source = "registry+https://github.com/rust-lang/crates.io-index" 377 | 378 | [[package]] 379 | name = "fwdansi" 380 | version = "1.0.1" 381 | source = "registry+https://github.com/rust-lang/crates.io-index" 382 | dependencies = [ 383 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 384 | "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 385 | ] 386 | 387 | [[package]] 388 | name = "git2" 389 | version = "0.8.0" 390 | source = "registry+https://github.com/rust-lang/crates.io-index" 391 | dependencies = [ 392 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 393 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 394 | "libgit2-sys 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)", 395 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 396 | "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 397 | "openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)", 398 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 399 | ] 400 | 401 | [[package]] 402 | name = "git2-curl" 403 | version = "0.9.0" 404 | source = "registry+https://github.com/rust-lang/crates.io-index" 405 | dependencies = [ 406 | "curl 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", 407 | "git2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 408 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 409 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 410 | ] 411 | 412 | [[package]] 413 | name = "glob" 414 | version = "0.2.11" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | 417 | [[package]] 418 | name = "globset" 419 | version = "0.4.2" 420 | source = "registry+https://github.com/rust-lang/crates.io-index" 421 | dependencies = [ 422 | "aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 423 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 424 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 425 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 426 | "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 427 | ] 428 | 429 | [[package]] 430 | name = "heck" 431 | version = "0.3.1" 432 | source = "registry+https://github.com/rust-lang/crates.io-index" 433 | dependencies = [ 434 | "unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 435 | ] 436 | 437 | [[package]] 438 | name = "hex" 439 | version = "0.3.2" 440 | source = "registry+https://github.com/rust-lang/crates.io-index" 441 | 442 | [[package]] 443 | name = "home" 444 | version = "0.3.4" 445 | source = "registry+https://github.com/rust-lang/crates.io-index" 446 | dependencies = [ 447 | "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 448 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 449 | ] 450 | 451 | [[package]] 452 | name = "humantime" 453 | version = "1.2.0" 454 | source = "registry+https://github.com/rust-lang/crates.io-index" 455 | dependencies = [ 456 | "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 457 | ] 458 | 459 | [[package]] 460 | name = "idna" 461 | version = "0.1.5" 462 | source = "registry+https://github.com/rust-lang/crates.io-index" 463 | dependencies = [ 464 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 465 | "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", 466 | "unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 467 | ] 468 | 469 | [[package]] 470 | name = "ignore" 471 | version = "0.4.6" 472 | source = "registry+https://github.com/rust-lang/crates.io-index" 473 | dependencies = [ 474 | "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 475 | "globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 476 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 477 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 478 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 479 | "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 480 | "same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 481 | "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 482 | "walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)", 483 | "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 484 | ] 485 | 486 | [[package]] 487 | name = "im-rc" 488 | version = "12.3.2" 489 | source = "registry+https://github.com/rust-lang/crates.io-index" 490 | dependencies = [ 491 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 492 | "sized-chunks 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 493 | "typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 494 | ] 495 | 496 | [[package]] 497 | name = "itoa" 498 | version = "0.4.3" 499 | source = "registry+https://github.com/rust-lang/crates.io-index" 500 | 501 | [[package]] 502 | name = "jobserver" 503 | version = "0.1.12" 504 | source = "registry+https://github.com/rust-lang/crates.io-index" 505 | dependencies = [ 506 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 507 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 508 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 509 | ] 510 | 511 | [[package]] 512 | name = "kernel32-sys" 513 | version = "0.2.2" 514 | source = "registry+https://github.com/rust-lang/crates.io-index" 515 | dependencies = [ 516 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 517 | "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 518 | ] 519 | 520 | [[package]] 521 | name = "lazy_static" 522 | version = "1.3.0" 523 | source = "registry+https://github.com/rust-lang/crates.io-index" 524 | 525 | [[package]] 526 | name = "lazycell" 527 | version = "1.2.1" 528 | source = "registry+https://github.com/rust-lang/crates.io-index" 529 | 530 | [[package]] 531 | name = "libc" 532 | version = "0.2.50" 533 | source = "registry+https://github.com/rust-lang/crates.io-index" 534 | 535 | [[package]] 536 | name = "libgit2-sys" 537 | version = "0.7.11" 538 | source = "registry+https://github.com/rust-lang/crates.io-index" 539 | dependencies = [ 540 | "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", 541 | "curl-sys 0.4.16 (registry+https://github.com/rust-lang/crates.io-index)", 542 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 543 | "libssh2-sys 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 544 | "libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", 545 | "openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)", 546 | "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 547 | ] 548 | 549 | [[package]] 550 | name = "libnghttp2-sys" 551 | version = "0.1.1" 552 | source = "registry+https://github.com/rust-lang/crates.io-index" 553 | dependencies = [ 554 | "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", 555 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 556 | ] 557 | 558 | [[package]] 559 | name = "libssh2-sys" 560 | version = "0.2.11" 561 | source = "registry+https://github.com/rust-lang/crates.io-index" 562 | dependencies = [ 563 | "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", 564 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 565 | "libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", 566 | "openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)", 567 | "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 568 | "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 569 | ] 570 | 571 | [[package]] 572 | name = "libz-sys" 573 | version = "1.0.25" 574 | source = "registry+https://github.com/rust-lang/crates.io-index" 575 | dependencies = [ 576 | "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", 577 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 578 | "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 579 | "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 580 | ] 581 | 582 | [[package]] 583 | name = "log" 584 | version = "0.4.6" 585 | source = "registry+https://github.com/rust-lang/crates.io-index" 586 | dependencies = [ 587 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 588 | ] 589 | 590 | [[package]] 591 | name = "matches" 592 | version = "0.1.8" 593 | source = "registry+https://github.com/rust-lang/crates.io-index" 594 | 595 | [[package]] 596 | name = "memchr" 597 | version = "2.2.0" 598 | source = "registry+https://github.com/rust-lang/crates.io-index" 599 | 600 | [[package]] 601 | name = "miniz-sys" 602 | version = "0.1.11" 603 | source = "registry+https://github.com/rust-lang/crates.io-index" 604 | dependencies = [ 605 | "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", 606 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 607 | ] 608 | 609 | [[package]] 610 | name = "miniz_oxide" 611 | version = "0.2.1" 612 | source = "registry+https://github.com/rust-lang/crates.io-index" 613 | dependencies = [ 614 | "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 615 | ] 616 | 617 | [[package]] 618 | name = "miniz_oxide_c_api" 619 | version = "0.2.1" 620 | source = "registry+https://github.com/rust-lang/crates.io-index" 621 | dependencies = [ 622 | "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", 623 | "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", 624 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 625 | "miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 626 | ] 627 | 628 | [[package]] 629 | name = "miow" 630 | version = "0.3.3" 631 | source = "registry+https://github.com/rust-lang/crates.io-index" 632 | dependencies = [ 633 | "socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 634 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 635 | ] 636 | 637 | [[package]] 638 | name = "num_cpus" 639 | version = "1.10.0" 640 | source = "registry+https://github.com/rust-lang/crates.io-index" 641 | dependencies = [ 642 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 643 | ] 644 | 645 | [[package]] 646 | name = "opener" 647 | version = "0.3.2" 648 | source = "registry+https://github.com/rust-lang/crates.io-index" 649 | dependencies = [ 650 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 651 | "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 652 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 653 | ] 654 | 655 | [[package]] 656 | name = "openssl" 657 | version = "0.10.19" 658 | source = "registry+https://github.com/rust-lang/crates.io-index" 659 | dependencies = [ 660 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 661 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 662 | "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 663 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 664 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 665 | "openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)", 666 | ] 667 | 668 | [[package]] 669 | name = "openssl-probe" 670 | version = "0.1.2" 671 | source = "registry+https://github.com/rust-lang/crates.io-index" 672 | 673 | [[package]] 674 | name = "openssl-sys" 675 | version = "0.9.42" 676 | source = "registry+https://github.com/rust-lang/crates.io-index" 677 | dependencies = [ 678 | "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", 679 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 680 | "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 681 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 682 | "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 683 | ] 684 | 685 | [[package]] 686 | name = "percent-encoding" 687 | version = "1.0.1" 688 | source = "registry+https://github.com/rust-lang/crates.io-index" 689 | 690 | [[package]] 691 | name = "pkg-config" 692 | version = "0.3.14" 693 | source = "registry+https://github.com/rust-lang/crates.io-index" 694 | 695 | [[package]] 696 | name = "proc-macro2" 697 | version = "0.4.27" 698 | source = "registry+https://github.com/rust-lang/crates.io-index" 699 | dependencies = [ 700 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 701 | ] 702 | 703 | [[package]] 704 | name = "quick-error" 705 | version = "1.2.2" 706 | source = "registry+https://github.com/rust-lang/crates.io-index" 707 | 708 | [[package]] 709 | name = "quote" 710 | version = "0.6.11" 711 | source = "registry+https://github.com/rust-lang/crates.io-index" 712 | dependencies = [ 713 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", 714 | ] 715 | 716 | [[package]] 717 | name = "rand" 718 | version = "0.6.5" 719 | source = "registry+https://github.com/rust-lang/crates.io-index" 720 | dependencies = [ 721 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 722 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 723 | "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 724 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 725 | "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 726 | "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 727 | "rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 728 | "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 729 | "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 730 | "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 731 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 732 | ] 733 | 734 | [[package]] 735 | name = "rand_chacha" 736 | version = "0.1.1" 737 | source = "registry+https://github.com/rust-lang/crates.io-index" 738 | dependencies = [ 739 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 740 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 741 | ] 742 | 743 | [[package]] 744 | name = "rand_core" 745 | version = "0.3.1" 746 | source = "registry+https://github.com/rust-lang/crates.io-index" 747 | dependencies = [ 748 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 749 | ] 750 | 751 | [[package]] 752 | name = "rand_core" 753 | version = "0.4.0" 754 | source = "registry+https://github.com/rust-lang/crates.io-index" 755 | 756 | [[package]] 757 | name = "rand_hc" 758 | version = "0.1.0" 759 | source = "registry+https://github.com/rust-lang/crates.io-index" 760 | dependencies = [ 761 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 762 | ] 763 | 764 | [[package]] 765 | name = "rand_isaac" 766 | version = "0.1.1" 767 | source = "registry+https://github.com/rust-lang/crates.io-index" 768 | dependencies = [ 769 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 770 | ] 771 | 772 | [[package]] 773 | name = "rand_jitter" 774 | version = "0.1.3" 775 | source = "registry+https://github.com/rust-lang/crates.io-index" 776 | dependencies = [ 777 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 778 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 779 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 780 | ] 781 | 782 | [[package]] 783 | name = "rand_os" 784 | version = "0.1.3" 785 | source = "registry+https://github.com/rust-lang/crates.io-index" 786 | dependencies = [ 787 | "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 788 | "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 789 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 790 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 791 | "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 792 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 793 | ] 794 | 795 | [[package]] 796 | name = "rand_pcg" 797 | version = "0.1.2" 798 | source = "registry+https://github.com/rust-lang/crates.io-index" 799 | dependencies = [ 800 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 801 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 802 | ] 803 | 804 | [[package]] 805 | name = "rand_xorshift" 806 | version = "0.1.1" 807 | source = "registry+https://github.com/rust-lang/crates.io-index" 808 | dependencies = [ 809 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 810 | ] 811 | 812 | [[package]] 813 | name = "rdrand" 814 | version = "0.4.0" 815 | source = "registry+https://github.com/rust-lang/crates.io-index" 816 | dependencies = [ 817 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 818 | ] 819 | 820 | [[package]] 821 | name = "redox_syscall" 822 | version = "0.1.51" 823 | source = "registry+https://github.com/rust-lang/crates.io-index" 824 | 825 | [[package]] 826 | name = "redox_termios" 827 | version = "0.1.1" 828 | source = "registry+https://github.com/rust-lang/crates.io-index" 829 | dependencies = [ 830 | "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", 831 | ] 832 | 833 | [[package]] 834 | name = "regex" 835 | version = "1.1.2" 836 | source = "registry+https://github.com/rust-lang/crates.io-index" 837 | dependencies = [ 838 | "aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 839 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 840 | "regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 841 | "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 842 | "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 843 | ] 844 | 845 | [[package]] 846 | name = "regex-syntax" 847 | version = "0.6.5" 848 | source = "registry+https://github.com/rust-lang/crates.io-index" 849 | dependencies = [ 850 | "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 851 | ] 852 | 853 | [[package]] 854 | name = "remove_dir_all" 855 | version = "0.5.1" 856 | source = "registry+https://github.com/rust-lang/crates.io-index" 857 | dependencies = [ 858 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 859 | ] 860 | 861 | [[package]] 862 | name = "rustc-demangle" 863 | version = "0.1.13" 864 | source = "registry+https://github.com/rust-lang/crates.io-index" 865 | 866 | [[package]] 867 | name = "rustc-workspace-hack" 868 | version = "1.0.0" 869 | source = "registry+https://github.com/rust-lang/crates.io-index" 870 | 871 | [[package]] 872 | name = "rustc_version" 873 | version = "0.2.3" 874 | source = "registry+https://github.com/rust-lang/crates.io-index" 875 | dependencies = [ 876 | "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 877 | ] 878 | 879 | [[package]] 880 | name = "rustfix" 881 | version = "0.4.4" 882 | source = "registry+https://github.com/rust-lang/crates.io-index" 883 | dependencies = [ 884 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 885 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 886 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", 887 | "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", 888 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", 889 | ] 890 | 891 | [[package]] 892 | name = "ryu" 893 | version = "0.2.7" 894 | source = "registry+https://github.com/rust-lang/crates.io-index" 895 | 896 | [[package]] 897 | name = "same-file" 898 | version = "1.0.4" 899 | source = "registry+https://github.com/rust-lang/crates.io-index" 900 | dependencies = [ 901 | "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 902 | ] 903 | 904 | [[package]] 905 | name = "schannel" 906 | version = "0.1.15" 907 | source = "registry+https://github.com/rust-lang/crates.io-index" 908 | dependencies = [ 909 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 910 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 911 | ] 912 | 913 | [[package]] 914 | name = "scopeguard" 915 | version = "0.3.3" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | 918 | [[package]] 919 | name = "semver" 920 | version = "0.9.0" 921 | source = "registry+https://github.com/rust-lang/crates.io-index" 922 | dependencies = [ 923 | "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 924 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", 925 | ] 926 | 927 | [[package]] 928 | name = "semver-parser" 929 | version = "0.7.0" 930 | source = "registry+https://github.com/rust-lang/crates.io-index" 931 | 932 | [[package]] 933 | name = "serde" 934 | version = "1.0.89" 935 | source = "registry+https://github.com/rust-lang/crates.io-index" 936 | dependencies = [ 937 | "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", 938 | ] 939 | 940 | [[package]] 941 | name = "serde_derive" 942 | version = "1.0.89" 943 | source = "registry+https://github.com/rust-lang/crates.io-index" 944 | dependencies = [ 945 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", 946 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", 947 | "syn 0.15.28 (registry+https://github.com/rust-lang/crates.io-index)", 948 | ] 949 | 950 | [[package]] 951 | name = "serde_ignored" 952 | version = "0.0.4" 953 | source = "registry+https://github.com/rust-lang/crates.io-index" 954 | dependencies = [ 955 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", 956 | ] 957 | 958 | [[package]] 959 | name = "serde_json" 960 | version = "1.0.39" 961 | source = "registry+https://github.com/rust-lang/crates.io-index" 962 | dependencies = [ 963 | "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", 964 | "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", 965 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", 966 | ] 967 | 968 | [[package]] 969 | name = "shell-escape" 970 | version = "0.1.4" 971 | source = "registry+https://github.com/rust-lang/crates.io-index" 972 | 973 | [[package]] 974 | name = "sized-chunks" 975 | version = "0.1.1" 976 | source = "registry+https://github.com/rust-lang/crates.io-index" 977 | dependencies = [ 978 | "typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 979 | ] 980 | 981 | [[package]] 982 | name = "smallvec" 983 | version = "0.6.9" 984 | source = "registry+https://github.com/rust-lang/crates.io-index" 985 | 986 | [[package]] 987 | name = "socket2" 988 | version = "0.3.8" 989 | source = "registry+https://github.com/rust-lang/crates.io-index" 990 | dependencies = [ 991 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 992 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 993 | "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", 994 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 995 | ] 996 | 997 | [[package]] 998 | name = "strsim" 999 | version = "0.7.0" 1000 | source = "registry+https://github.com/rust-lang/crates.io-index" 1001 | 1002 | [[package]] 1003 | name = "structopt" 1004 | version = "0.2.15" 1005 | source = "registry+https://github.com/rust-lang/crates.io-index" 1006 | dependencies = [ 1007 | "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", 1008 | "structopt-derive 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 1009 | ] 1010 | 1011 | [[package]] 1012 | name = "structopt-derive" 1013 | version = "0.2.15" 1014 | source = "registry+https://github.com/rust-lang/crates.io-index" 1015 | dependencies = [ 1016 | "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 1017 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", 1018 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", 1019 | "syn 0.15.28 (registry+https://github.com/rust-lang/crates.io-index)", 1020 | ] 1021 | 1022 | [[package]] 1023 | name = "syn" 1024 | version = "0.15.28" 1025 | source = "registry+https://github.com/rust-lang/crates.io-index" 1026 | dependencies = [ 1027 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", 1028 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", 1029 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1030 | ] 1031 | 1032 | [[package]] 1033 | name = "synstructure" 1034 | version = "0.10.1" 1035 | source = "registry+https://github.com/rust-lang/crates.io-index" 1036 | dependencies = [ 1037 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", 1038 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", 1039 | "syn 0.15.28 (registry+https://github.com/rust-lang/crates.io-index)", 1040 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1041 | ] 1042 | 1043 | [[package]] 1044 | name = "tar" 1045 | version = "0.4.21" 1046 | source = "registry+https://github.com/rust-lang/crates.io-index" 1047 | dependencies = [ 1048 | "filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", 1049 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 1050 | "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", 1051 | ] 1052 | 1053 | [[package]] 1054 | name = "tempfile" 1055 | version = "3.0.7" 1056 | source = "registry+https://github.com/rust-lang/crates.io-index" 1057 | dependencies = [ 1058 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1059 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 1060 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1061 | "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", 1062 | "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 1063 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1064 | ] 1065 | 1066 | [[package]] 1067 | name = "termcolor" 1068 | version = "1.0.4" 1069 | source = "registry+https://github.com/rust-lang/crates.io-index" 1070 | dependencies = [ 1071 | "wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 1072 | ] 1073 | 1074 | [[package]] 1075 | name = "termion" 1076 | version = "1.5.1" 1077 | source = "registry+https://github.com/rust-lang/crates.io-index" 1078 | dependencies = [ 1079 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", 1080 | "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", 1081 | "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1082 | ] 1083 | 1084 | [[package]] 1085 | name = "textwrap" 1086 | version = "0.10.0" 1087 | source = "registry+https://github.com/rust-lang/crates.io-index" 1088 | dependencies = [ 1089 | "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1090 | ] 1091 | 1092 | [[package]] 1093 | name = "thread_local" 1094 | version = "0.3.6" 1095 | source = "registry+https://github.com/rust-lang/crates.io-index" 1096 | dependencies = [ 1097 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1098 | ] 1099 | 1100 | [[package]] 1101 | name = "toml" 1102 | version = "0.4.10" 1103 | source = "registry+https://github.com/rust-lang/crates.io-index" 1104 | dependencies = [ 1105 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", 1106 | ] 1107 | 1108 | [[package]] 1109 | name = "typenum" 1110 | version = "1.10.0" 1111 | source = "registry+https://github.com/rust-lang/crates.io-index" 1112 | 1113 | [[package]] 1114 | name = "ucd-util" 1115 | version = "0.1.3" 1116 | source = "registry+https://github.com/rust-lang/crates.io-index" 1117 | 1118 | [[package]] 1119 | name = "unicode-bidi" 1120 | version = "0.3.4" 1121 | source = "registry+https://github.com/rust-lang/crates.io-index" 1122 | dependencies = [ 1123 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 1124 | ] 1125 | 1126 | [[package]] 1127 | name = "unicode-normalization" 1128 | version = "0.1.8" 1129 | source = "registry+https://github.com/rust-lang/crates.io-index" 1130 | dependencies = [ 1131 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", 1132 | ] 1133 | 1134 | [[package]] 1135 | name = "unicode-segmentation" 1136 | version = "1.2.1" 1137 | source = "registry+https://github.com/rust-lang/crates.io-index" 1138 | 1139 | [[package]] 1140 | name = "unicode-width" 1141 | version = "0.1.5" 1142 | source = "registry+https://github.com/rust-lang/crates.io-index" 1143 | 1144 | [[package]] 1145 | name = "unicode-xid" 1146 | version = "0.1.0" 1147 | source = "registry+https://github.com/rust-lang/crates.io-index" 1148 | 1149 | [[package]] 1150 | name = "url" 1151 | version = "1.7.2" 1152 | source = "registry+https://github.com/rust-lang/crates.io-index" 1153 | dependencies = [ 1154 | "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1155 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 1156 | "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 1157 | ] 1158 | 1159 | [[package]] 1160 | name = "url_serde" 1161 | version = "0.2.0" 1162 | source = "registry+https://github.com/rust-lang/crates.io-index" 1163 | dependencies = [ 1164 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", 1165 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 1166 | ] 1167 | 1168 | [[package]] 1169 | name = "utf8-ranges" 1170 | version = "1.0.2" 1171 | source = "registry+https://github.com/rust-lang/crates.io-index" 1172 | 1173 | [[package]] 1174 | name = "vcpkg" 1175 | version = "0.2.6" 1176 | source = "registry+https://github.com/rust-lang/crates.io-index" 1177 | 1178 | [[package]] 1179 | name = "vec_map" 1180 | version = "0.8.1" 1181 | source = "registry+https://github.com/rust-lang/crates.io-index" 1182 | 1183 | [[package]] 1184 | name = "walkdir" 1185 | version = "2.2.7" 1186 | source = "registry+https://github.com/rust-lang/crates.io-index" 1187 | dependencies = [ 1188 | "same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 1189 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1190 | "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1191 | ] 1192 | 1193 | [[package]] 1194 | name = "winapi" 1195 | version = "0.2.8" 1196 | source = "registry+https://github.com/rust-lang/crates.io-index" 1197 | 1198 | [[package]] 1199 | name = "winapi" 1200 | version = "0.3.6" 1201 | source = "registry+https://github.com/rust-lang/crates.io-index" 1202 | dependencies = [ 1203 | "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1204 | "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1205 | ] 1206 | 1207 | [[package]] 1208 | name = "winapi-build" 1209 | version = "0.1.1" 1210 | source = "registry+https://github.com/rust-lang/crates.io-index" 1211 | 1212 | [[package]] 1213 | name = "winapi-i686-pc-windows-gnu" 1214 | version = "0.4.0" 1215 | source = "registry+https://github.com/rust-lang/crates.io-index" 1216 | 1217 | [[package]] 1218 | name = "winapi-util" 1219 | version = "0.1.2" 1220 | source = "registry+https://github.com/rust-lang/crates.io-index" 1221 | dependencies = [ 1222 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1223 | ] 1224 | 1225 | [[package]] 1226 | name = "winapi-x86_64-pc-windows-gnu" 1227 | version = "0.4.0" 1228 | source = "registry+https://github.com/rust-lang/crates.io-index" 1229 | 1230 | [[package]] 1231 | name = "wincolor" 1232 | version = "1.0.1" 1233 | source = "registry+https://github.com/rust-lang/crates.io-index" 1234 | dependencies = [ 1235 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1236 | "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1237 | ] 1238 | 1239 | [metadata] 1240 | "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" 1241 | "checksum aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5" 1242 | "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" 1243 | "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" 1244 | "checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799" 1245 | "checksum backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "cd5a90e2b463010cd0e0ce9a11d4a9d5d58d9f41d4a6ba3dcaf9e68b466e88b4" 1246 | "checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" 1247 | "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" 1248 | "checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" 1249 | "checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" 1250 | "checksum bytesize 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "716960a18f978640f25101b5cbf1c6f6b0d3192fab36a2d98ca96f0ecbe41010" 1251 | "checksum cargo 0.34.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f7e90b5f23ae79af3ec0e4dc670349167fd47d6c1134f139cf0627817a4792bf" 1252 | "checksum cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)" = "d01c69d08ff207f231f07196e30f84c70f1c815b04f980f8b7b01ff01f05eb92" 1253 | "checksum cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4" 1254 | "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" 1255 | "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" 1256 | "checksum commoncrypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d056a8586ba25a1e4d61cb090900e495952c7886786fc55f909ab2f819b69007" 1257 | "checksum commoncrypto-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1fed34f46747aa73dfaa578069fd8279d2818ade2b55f38f22a9401c7f4083e2" 1258 | "checksum core-foundation 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4e2640d6d0bf22e82bed1b73c6aef8d5dd31e5abe6666c57e6d45e2649f4f887" 1259 | "checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" 1260 | "checksum crates-io 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)" = "091018c3f5e8109d82d94b648555f0d4a308d15626da2fb22c76f32117e24569" 1261 | "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" 1262 | "checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" 1263 | "checksum crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0f0ed1a4de2235cabda8558ff5840bffb97fcb64c97827f354a451307df5f72b" 1264 | "checksum crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c" 1265 | "checksum crypto-hash 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "20ff87d28defc77c9980a5b81cae1a33c791dd0ead8af0cee0833eb98c8305b9" 1266 | "checksum curl 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)" = "c7c9d851c825e0c033979d4516c9173bc19a78a96eb4d6ae51d4045440eafa16" 1267 | "checksum curl-sys 0.4.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ca79238a79fb294be6173b4057c95b22a718c94c4e38475d5faa82b8383f3502" 1268 | "checksum env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b61fa891024a945da30a9581546e8cfaf5602c7b3f4c137a2805cf388f92075a" 1269 | "checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" 1270 | "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" 1271 | "checksum filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a2df5c1a8c4be27e7707789dc42ae65976e60b394afd293d1419ab915833e646" 1272 | "checksum flate2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2291c165c8e703ee54ef3055ad6188e3d51108e2ded18e9f2476e774fc5ad3d4" 1273 | "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" 1274 | "checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 1275 | "checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 1276 | "checksum fs2 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" 1277 | "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" 1278 | "checksum fwdansi 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "34dd4c507af68d37ffef962063dfa1944ce0dd4d5b82043dbab1dabe088610c3" 1279 | "checksum git2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c7339329bfa14a00223244311560d11f8f489b453fb90092af97f267a6090ab0" 1280 | "checksum git2-curl 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d58551e903ed7e2d6fe3a2f3c7efa3a784ec29b19d0fbb035aaf0497c183fbdd" 1281 | "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" 1282 | "checksum globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4743617a7464bbda3c8aec8558ff2f9429047e025771037df561d383337ff865" 1283 | "checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" 1284 | "checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" 1285 | "checksum home 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "29302b90cfa76231a757a887d1e3153331a63c7f80b6c75f86366334cbe70708" 1286 | "checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" 1287 | "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" 1288 | "checksum ignore 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ad03ca67dc12474ecd91fdb94d758cbd20cb4e7a78ebe831df26a9b7511e1162" 1289 | "checksum im-rc 12.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fc81743712cb266eb016b394150497f99fa10615301991833372902b34f43391" 1290 | "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" 1291 | "checksum jobserver 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "dd80e58f77e0cdea53ba96acc5e04479e5ffc5d869626a6beafe50fed867eace" 1292 | "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 1293 | "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" 1294 | "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" 1295 | "checksum libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "aab692d7759f5cd8c859e169db98ae5b52c924add2af5fbbca11d12fefb567c1" 1296 | "checksum libgit2-sys 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)" = "48441cb35dc255da8ae72825689a95368bf510659ae1ad55dc4aa88cb1789bf1" 1297 | "checksum libnghttp2-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d75d7966bda4730b722d1eab8e668df445368a24394bae9fc1e8dc0ab3dbe4f4" 1298 | "checksum libssh2-sys 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "126a1f4078368b163bfdee65fbab072af08a1b374a5551b21e87ade27b1fbf9d" 1299 | "checksum libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe" 1300 | "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" 1301 | "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" 1302 | "checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39" 1303 | "checksum miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "0300eafb20369952951699b68243ab4334f4b10a88f411c221d444b36c40e649" 1304 | "checksum miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c468f2369f07d651a5d0bb2c9079f8488a66d5466efe42d0c5c6466edcb7f71e" 1305 | "checksum miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b7fe927a42e3807ef71defb191dc87d4e24479b221e67015fe38ae2b7b447bab" 1306 | "checksum miow 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "396aa0f2003d7df8395cb93e09871561ccc3e785f0acb369170e8cc74ddf9226" 1307 | "checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba" 1308 | "checksum opener 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "04b1d6b086d9b3009550f9b6f81b10ad9428cf14f404b8e1a3a06f6f012c8ec9" 1309 | "checksum openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)" = "84321fb9004c3bce5611188a644d6171f895fa2889d155927d528782edb21c5d" 1310 | "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" 1311 | "checksum openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)" = "cb534d752bf98cf363b473950659ac2546517f9c6be9723771614ab3f03bbc9e" 1312 | "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" 1313 | "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" 1314 | "checksum proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)" = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915" 1315 | "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" 1316 | "checksum quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cdd8e04bd9c52e0342b406469d494fcb033be4bdbe5c606016defbb1681411e1" 1317 | "checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" 1318 | "checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" 1319 | "checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" 1320 | "checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0" 1321 | "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" 1322 | "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" 1323 | "checksum rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b9ea758282efe12823e0d952ddb269d2e1897227e464919a554f2a03ef1b832" 1324 | "checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" 1325 | "checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" 1326 | "checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" 1327 | "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" 1328 | "checksum redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)" = "423e376fffca3dfa06c9e9790a9ccd282fafb3cc6e6397d01dbf64f9bacc6b85" 1329 | "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" 1330 | "checksum regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53ee8cfdddb2e0291adfb9f13d31d3bbe0a03c9a402c01b1e24188d86c35b24f" 1331 | "checksum regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8c2f35eedad5295fdf00a63d7d4b238135723f92b434ec06774dad15c7ab0861" 1332 | "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" 1333 | "checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619" 1334 | "checksum rustc-workspace-hack 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc71d2faa173b74b232dedc235e3ee1696581bb132fc116fa3626d6151a1a8fb" 1335 | "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" 1336 | "checksum rustfix 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "af7c21531a91512a4a51b490be6ba1c8eff34fdda0dc5bf87dc28d86748aac56" 1337 | "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" 1338 | "checksum same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" 1339 | "checksum schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f6abf258d99c3c1c5c2131d99d064e94b7b3dd5f416483057f308fea253339" 1340 | "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" 1341 | "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" 1342 | "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" 1343 | "checksum serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "92514fb95f900c9b5126e32d020f5c6d40564c27a5ea6d1d7d9f157a96623560" 1344 | "checksum serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6eabf4b5914e88e24eea240bb7c9f9a2cbc1bbbe8d961d381975ec3c6b806c" 1345 | "checksum serde_ignored 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "190e9765dcedb56be63b6e0993a006c7e3b071a016a304736e4a315dc01fb142" 1346 | "checksum serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)" = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d" 1347 | "checksum shell-escape 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "170a13e64f2a51b77a45702ba77287f5c6829375b04a69cf2222acd17d0cfab9" 1348 | "checksum sized-chunks 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8f15885363b466a745da0df69eee1ce2aef22ed404414962cedf8e318e75ce87" 1349 | "checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be" 1350 | "checksum socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "c4d11a52082057d87cb5caa31ad812f4504b97ab44732cd8359df2e9ff9f48e7" 1351 | "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" 1352 | "checksum structopt 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)" = "3d0760c312538987d363c36c42339b55f5ee176ea8808bbe4543d484a291c8d1" 1353 | "checksum structopt-derive 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)" = "528aeb7351d042e6ffbc2a6fb76a86f9b622fdf7c25932798e7a82cb03bc94c6" 1354 | "checksum syn 0.15.28 (registry+https://github.com/rust-lang/crates.io-index)" = "218aa5a01ab9805df6e9e48074c8d88f317cc9660b1ad6c3dabac2d627d185d6" 1355 | "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" 1356 | "checksum tar 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)" = "904b43da53c99b929c4484fa281e5535f2eb86b3040de3e3e5b69708e2a8bd65" 1357 | "checksum tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a" 1358 | "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" 1359 | "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" 1360 | "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" 1361 | "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" 1362 | "checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f" 1363 | "checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169" 1364 | "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" 1365 | "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" 1366 | "checksum unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426" 1367 | "checksum unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aa6024fc12ddfd1c6dbc14a80fa2324d4568849869b779f6bd37e5e4c03344d1" 1368 | "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" 1369 | "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" 1370 | "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" 1371 | "checksum url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "74e7d099f1ee52f823d4bdd60c93c3602043c728f5db3b97bdb548467f7bddea" 1372 | "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" 1373 | "checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" 1374 | "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" 1375 | "checksum walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1" 1376 | "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" 1377 | "checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" 1378 | "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" 1379 | "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1380 | "checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" 1381 | "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1382 | "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" 1383 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "cargo-feature-analyst" 3 | version = "0.1.0" 4 | authors = ["psinghal20 "] 5 | edition = "2018" 6 | description = "cargo-feature-analyst is a tool written in rust to analyse the feature usage in your rust project." 7 | license = "MIT" 8 | repository = "https://github.com/psinghal20/cargo-feature-analyst" 9 | 10 | [dependencies] 11 | cargo = "0.34" 12 | structopt = "0.2" 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) [2019] [Pratyush Singhal] 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # cargo-feature-analyst 2 | cargo-feature-analyst is a tool written in rust to analyse the feature usage in your rust project. It is provided as cargo subcommand. 3 | 4 | It provides with a list of Enabled features in your dependency tree with names of crates enabling those features and a list of all the disabled features in your dependency tree. 5 | 6 | ## Usage 7 | USAGE: 8 | cargo feature-analyst [FLAGS] [OPTIONS] 9 | 10 | FLAGS: 11 | --all-features Activate all available features 12 | -h, --help Prints help information 13 | --no-default-features Do not activate the `default` feature 14 | --no-dev-dependencies Skip dev dependencies. 15 | -V, --version Prints version information 16 | 17 | OPTIONS: 18 | --features Space-separated list of features to activate 19 | 20 | ## Example Output 21 | Enabled features 22 | ------------------ 23 | 24 | mycrate/default 25 | mycrate/foo 26 | dep1/default[mycrate] 27 | dep1/bar [mycrate] 28 | dep2/baz [mycrate] 29 | dep3-1.0.0/qux [mycrate, dep1] 30 | dep3-1.1.0/quazam [dep2] 31 | 32 | Disabled features 33 | ------------------- 34 | 35 | mycrate/z 36 | dep2/default 37 | dep2/y 38 | dep3-1.0.0/default 39 | dep3-1.0.0/x 40 | dep3-1.1.0/default 41 | 42 | ## Installation 43 | cargo install cargo-feature-analyst 44 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use cargo::core::package::PackageSet; 2 | use cargo::core::registry::PackageRegistry; 3 | use cargo::core::resolver::Method; 4 | use cargo::core::shell::Shell; 5 | use cargo::core::{Package, PackageId, Resolve, Workspace}; 6 | use cargo::ops; 7 | use cargo::util::{important_paths, CargoResult}; 8 | use cargo::Config; 9 | use std::collections::{BTreeMap, BTreeSet, HashSet}; 10 | use std::fmt; 11 | use structopt::StructOpt; 12 | 13 | 14 | #[derive(StructOpt)] 15 | #[structopt(bin_name = "cargo")] 16 | enum Opt { 17 | #[structopt(name = "feature-analyst")] 18 | /// Display feature analysis of rust crate 19 | FeatureAnalyst(Args), 20 | } 21 | 22 | #[derive(StructOpt)] 23 | struct Args { 24 | #[structopt(long = "features", value_name = "FEATURES")] 25 | /// Space-separated list of features to activate 26 | features: Option, 27 | #[structopt(long = "all-features")] 28 | /// Activate all available features 29 | all_features: bool, 30 | #[structopt(long = "no-default-features")] 31 | /// Do not activate the `default` feature 32 | no_default_features: bool, 33 | #[structopt(long = "no-dev-dependencies")] 34 | /// Skip dev dependencies. 35 | no_dev_dependencies: bool, 36 | } 37 | 38 | fn main() { 39 | let config = match Config::default() { 40 | Ok(cfg) => cfg, 41 | Err(e) => { 42 | let mut shell = Shell::new(); 43 | cargo::exit_with_error(e.into(), &mut shell) 44 | } 45 | }; 46 | 47 | let Opt::FeatureAnalyst(args) = Opt::from_args(); 48 | 49 | let root = important_paths::find_root_manifest_for_wd(&config.cwd()).unwrap(); 50 | let workspace = Workspace::new(&root, &config).unwrap(); 51 | let package = workspace.current().unwrap(); 52 | let mut registry = registry(&config, &package).unwrap(); 53 | let (packages, resolve) = resolve( 54 | &mut registry, 55 | &workspace, 56 | args.features, 57 | args.all_features, 58 | args.no_default_features, 59 | args.no_dev_dependencies, 60 | ).unwrap(); 61 | 62 | let ids = packages.package_ids().collect::>(); 63 | let packages = registry.get(&ids).unwrap(); 64 | 65 | let mut enabled_features_map: BTreeMap> = BTreeMap::new(); 66 | let mut disabled_features: BTreeSet = BTreeSet::new(); 67 | 68 | build_graph( 69 | &resolve, 70 | &packages, 71 | package.package_id(), 72 | &mut enabled_features_map, 73 | &mut disabled_features, 74 | ); 75 | println!("Enabled Features"); 76 | print_seperator(); 77 | for (key, value) in &enabled_features_map { 78 | println!("{} {:?}", key, value); 79 | } 80 | println!("\nDisabled Features"); 81 | print_seperator(); 82 | for feature in &disabled_features { 83 | println!("{}", feature); 84 | } 85 | } 86 | 87 | fn registry<'a>(config: &'a Config, package: &Package) -> CargoResult> { 88 | let mut registry = PackageRegistry::new(config)?; 89 | registry.add_sources(Some(package.package_id().source_id().clone()))?; 90 | Ok(registry) 91 | } 92 | 93 | fn resolve<'a, 'cfg>( 94 | registry: &mut PackageRegistry<'cfg>, 95 | workspace: &'a Workspace<'cfg>, 96 | features: Option, 97 | all_features: bool, 98 | no_default_features: bool, 99 | no_dev_dependencies: bool, 100 | ) -> CargoResult<(PackageSet<'a>, Resolve)> { 101 | let features = Method::split_features(&features.into_iter().collect::>()); 102 | 103 | let (packages, resolve) = ops::resolve_ws(workspace)?; 104 | 105 | let method = Method::Required { 106 | dev_deps: !no_dev_dependencies, 107 | features: &features, 108 | all_features, 109 | uses_default_features: !no_default_features, 110 | }; 111 | 112 | let resolve = ops::resolve_with_previous( 113 | registry, 114 | workspace, 115 | method, 116 | Some(&resolve), 117 | None, 118 | &[], 119 | true, 120 | true, 121 | )?; 122 | Ok((packages, resolve)) 123 | } 124 | 125 | #[derive(PartialEq, Eq, PartialOrd, Ord, Hash)] 126 | struct Feature { 127 | parent_crate: String, 128 | version: String, 129 | name: String, 130 | } 131 | 132 | impl fmt::Display for Feature { 133 | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 134 | write!(f, "{}-{}/{}", self.parent_crate, self.version, self.name) 135 | } 136 | } 137 | 138 | fn build_graph<'a>( 139 | resolve: &'a Resolve, 140 | packages: &'a PackageSet<'_>, 141 | root: PackageId, 142 | enabled_features_map: &mut BTreeMap>, 143 | disabled_features: &mut BTreeSet, 144 | ) -> () { 145 | let mut traversed_pkg: HashSet = HashSet::new(); 146 | let mut pending = vec![root]; 147 | while let Some(pkg_id) = pending.pop() { 148 | if !traversed_pkg.insert(pkg_id) { 149 | continue; 150 | } 151 | for raw_dep_id in resolve.deps_not_replaced(pkg_id) { 152 | let dep_id = match resolve.replacement(raw_dep_id) { 153 | Some(id) => id, 154 | None => raw_dep_id, 155 | }; 156 | pending.push(dep_id); 157 | for feature_name in resolve.features(dep_id).iter() { 158 | let feature = Feature{ 159 | parent_crate: dep_id.name().to_string(), 160 | version: dep_id.version().to_string(), 161 | name: feature_name.clone(), 162 | }; 163 | let enabling_crates = enabled_features_map.entry(feature).or_insert(Vec::new()); 164 | enabling_crates.push(pkg_id.name().to_string()) 165 | } 166 | for (feature_name, _) in packages.get_one(dep_id).unwrap().summary().features() { 167 | let feature = Feature{ 168 | parent_crate: dep_id.name().to_string(), 169 | version: dep_id.version().to_string(), 170 | name: feature_name.to_string(), 171 | }; 172 | match enabled_features_map.get(&feature) { 173 | None => disabled_features.insert(feature), 174 | _ => false, 175 | }; 176 | } 177 | } 178 | } 179 | } 180 | 181 | 182 | fn print_seperator() { 183 | for _ in 1..20 { 184 | print!("-"); 185 | } 186 | println!(); 187 | } --------------------------------------------------------------------------------