summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorPierre-Etienne Meunier <pierre-etienne.meunier@inria.fr>2018-10-28 00:06:29 +0100
committerJoachim Schiele <js@lastlog.de>2018-10-28 00:06:29 +0100
commitae3b4655a4a7d8692dab3ba46a40b7daabcb1208 (patch)
treef807556917f136b3acda0003148bb513b88a5887 /pkgs/build-support
parenta3e367ff4bbe479eb269b31f1eaf28fd4c1158c3 (diff)
downloadnixlib-ae3b4655a4a7d8692dab3ba46a40b7daabcb1208.tar
nixlib-ae3b4655a4a7d8692dab3ba46a40b7daabcb1208.tar.gz
nixlib-ae3b4655a4a7d8692dab3ba46a40b7daabcb1208.tar.bz2
nixlib-ae3b4655a4a7d8692dab3ba46a40b7daabcb1208.tar.lz
nixlib-ae3b4655a4a7d8692dab3ba46a40b7daabcb1208.tar.xz
nixlib-ae3b4655a4a7d8692dab3ba46a40b7daabcb1208.tar.zst
nixlib-ae3b4655a4a7d8692dab3ba46a40b7daabcb1208.zip
Carnix: 0.7.2 -> 0.8.10 (#40587)
Carnix: splits input into two parts: creates from creates.io and local ones
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/rust/build-rust-crate/build-crate.nix29
-rw-r--r--pkgs/build-support/rust/build-rust-crate/default.nix16
-rw-r--r--pkgs/build-support/rust/build-rust-crate/helpers.nix24
-rw-r--r--pkgs/build-support/rust/carnix.nix1685
-rw-r--r--pkgs/build-support/rust/crates-io.nix2050
5 files changed, 2351 insertions, 1453 deletions
diff --git a/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
index f65118ba4a64..252a0ff521fd 100644
--- a/pkgs/build-support/rust/build-rust-crate/build-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
@@ -2,7 +2,7 @@
 { crateName,
   dependencies,
   crateFeatures, libName, release, libPath,
-  crateType, metadata, crateBin,
+  crateType, metadata, crateBin, hasCrateBin,
   extraRustcOpts, verbose, colors }:
 
   let
@@ -13,6 +13,17 @@
             (if release then "-C opt-level=3" else "-C debuginfo=2")
             (["-C codegen-units=1"] ++ extraRustcOpts);
         rustcMeta = "-C metadata=${metadata} -C extra-filename=-${metadata}";
+
+    # Some platforms have different names for rustc.
+    rustPlatform =
+      with stdenv.hostPlatform.parsed;
+      let cpu_ = if cpu.name == "armv7a" then "armv7"
+                 else cpu.name;
+          vendor_ = vendor.name;
+          kernel_ = kernel.name;
+          abi_ = abi.name;
+      in
+      "${cpu_}-${vendor_}-${kernel_}-${abi_}";
   in ''
     runHook preBuild
     norm=""
@@ -32,7 +43,8 @@
        lib_src=$1
        echo_build_heading $lib_src ${libName}
 
-       noisily rustc --crate-name $CRATE_NAME $lib_src --crate-type ${crateType} \
+       noisily rustc --crate-name $CRATE_NAME $lib_src \
+         ${lib.strings.concatStrings (map (x: " --crate-type ${x}") crateType)}  \
          ${rustcOpts} ${rustcMeta} ${crateFeatures} --out-dir target/lib \
          --emit=dep-info,link -L dependency=target/deps ${deps} --cap-lints allow \
          $BUILD_OUT_DIR $EXTRA_BUILD $EXTRA_FEATURES --color ${colors}
@@ -54,7 +66,8 @@
       noisily rustc --crate-name $crate_name_ $main_file --crate-type bin ${rustcOpts}\
         ${crateFeatures} --out-dir target/bin --emit=dep-info,link -L dependency=target/deps \
         $LINK ${deps}$EXTRA_LIB --cap-lints allow \
-        $BUILD_OUT_DIR $EXTRA_BUILD $EXTRA_FEATURES --color ${colors}
+        $BUILD_OUT_DIR $EXTRA_BUILD $EXTRA_FEATURES --color ${colors} \
+        ${if stdenv.hostPlatform != stdenv.buildPlatform then "--target ${rustPlatform} -C linker=${stdenv.hostPlatform.config}-gcc" else ""}
       if [ "$crate_name_" != "$crate_name" ]; then
         mv target/bin/$crate_name_ target/bin/$crate_name
       fi
@@ -103,9 +116,9 @@
        tr '\n' ' ' < target/link > target/link_
        LINK=$(cat target/link_)
     fi
-
-    mkdir -p target/bin
+    ${lib.optionalString (crateBin != "") ''
     printf "%s\n" "${crateBin}" | head -n1 | tr -s ',' '\n' | while read -r BIN_NAME BIN_PATH; do
+      mkdir -p target/bin
       # filter empty entries / empty "lines"
       if [[ -z "$BIN_NAME" ]]; then
            continue
@@ -141,13 +154,15 @@
       fi
       build_bin "$BIN_NAME" "$BIN_PATH"
     done
+    ''}
 
-
-    ${lib.optionalString (crateBin == "") ''
+    ${lib.optionalString (crateBin == "" && !hasCrateBin) ''
       if [[ -e src/main.rs ]]; then
+        mkdir -p target/bin
         build_bin ${crateName} src/main.rs
       fi
       for i in src/bin/*.rs; do #*/
+        mkdir -p target/bin
         build_bin "$(basename $i .rs)" "$i"
       done
     ''}
diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix
index a11cef9f1f46..ec11472bbaeb 100644
--- a/pkgs/build-support/rust/build-rust-crate/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/default.nix
@@ -4,7 +4,7 @@
 # This can be useful for deploying packages with NixOps, and to share
 # binary dependencies between projects.
 
-{ lib, stdenv, defaultCrateOverrides, fetchCrate, ncurses, rustc  }:
+{ lib, stdenv, defaultCrateOverrides, fetchCrate, rustc }:
 
 let
     # This doesn't appear to be officially documented anywhere yet.
@@ -16,7 +16,7 @@ let
     makeDeps = dependencies:
       (lib.concatMapStringsSep " " (dep:
         let extern = lib.strings.replaceStrings ["-"] ["_"] dep.libName; in
-        (if dep.crateType == "lib" then
+        (if lib.lists.any (x: x == "lib") dep.crateType then
            " --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}.rlib"
          else
            " --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}${stdenv.hostPlatform.extensions.sharedLibrary}")
@@ -86,7 +86,8 @@ stdenv.mkDerivation (rec {
       else
         fetchCrate { inherit (crate) crateName version sha256; };
     name = "rust_${crate.crateName}-${crate.version}";
-    buildInputs = [ rust ncurses ] ++ (crate.buildInputs or []) ++ buildInputs_;
+    depsBuildBuild = [ rust stdenv.cc ];
+    buildInputs = (crate.buildInputs or []) ++ buildInputs_;
     dependencies =
       builtins.map
         (dep: dep.override { rust = rust; release = release; verbose = verbose; crateOverrides = crateOverrides; })
@@ -122,15 +123,16 @@ stdenv.mkDerivation (rec {
 
        ) "" crate.crateBin
     else "";
+    hasCrateBin = crate ? crateBin;
 
     build = crate.build or "";
     workspace_member = crate.workspace_member or ".";
     crateVersion = crate.version;
     crateAuthors = if crate ? authors && lib.isList crate.authors then crate.authors else [];
     crateType =
-      if lib.attrByPath ["procMacro"] false crate then "proc-macro" else
-      if lib.attrByPath ["plugin"] false crate then "dylib" else
-      (crate.type or "lib");
+      if lib.attrByPath ["procMacro"] false crate then ["proc-macro"] else
+      if lib.attrByPath ["plugin"] false crate then ["dylib"] else
+        (crate.type or ["lib"]);
     colors = lib.attrByPath [ "colors" ] "always" crate;
     extraLinkFlags = builtins.concatStringsSep " " (crate.extraLinkFlags or []);
     configurePhase = configureCrate {
@@ -143,7 +145,7 @@ stdenv.mkDerivation (rec {
     buildPhase = buildCrate {
       inherit crateName dependencies
               crateFeatures libName release libPath crateType
-              metadata crateBin verbose colors
+              metadata crateBin hasCrateBin verbose colors
               extraRustcOpts;
     };
     installPhase = installCrate crateName metadata;
diff --git a/pkgs/build-support/rust/build-rust-crate/helpers.nix b/pkgs/build-support/rust/build-rust-crate/helpers.nix
new file mode 100644
index 000000000000..e04324684e50
--- /dev/null
+++ b/pkgs/build-support/rust/build-rust-crate/helpers.nix
@@ -0,0 +1,24 @@
+{stdenv, lib}:
+{
+  kernel = stdenv.hostPlatform.parsed.kernel.name;
+  abi = stdenv.hostPlatform.parsed.abi.name;
+   updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
+   mapFeatures = features: map (fun: fun { features = features; });
+   mkFeatures = feat: lib.lists.foldl (features: featureName:
+     if feat.${featureName} or false then
+       [ featureName ] ++ features
+     else
+       features
+   ) [] (builtins.attrNames feat);
+  include = includedFiles: src: builtins.filterSource (path: type:
+    lib.lists.any (f:
+      let p = toString (src + ("/" + f)); in
+      (path == p) || (type == "directory" && lib.strings.hasPrefix path p)
+    ) includedFiles
+  ) src;
+  exclude = excludedFiles: src: builtins.filterSource (path: type:
+    lib.lists.all (f:
+       !lib.strings.hasPrefix (toString (src + ("/" + f))) path
+    ) excludedFiles
+  ) src;
+}
diff --git a/pkgs/build-support/rust/carnix.nix b/pkgs/build-support/rust/carnix.nix
index 0b8b3d60b6c9..7a0d92f81b45 100644
--- a/pkgs/build-support/rust/carnix.nix
+++ b/pkgs/build-support/rust/carnix.nix
@@ -1,1444 +1,251 @@
-# Generated by carnix 0.7.2: carnix nix
-{ lib, stdenv, buildRustCrate, fetchgit }:
-let kernel = stdenv.hostPlatform.parsed.kernel.name;
-    abi = stdenv.hostPlatform.parsed.abi.name;
-    updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
-    mapFeatures = features: map (fun: fun { features = features; });
-    mkFeatures = feat: lib.lists.foldl (features: featureName:
-      if feat.${featureName} or false then
-        [ featureName ] ++ features
-      else
-        features
-    ) [] (builtins.attrNames feat);
+# Generated by carnix 0.8.11: carnix generate-nix
+{ lib, buildPlatform, buildRustCrate, buildRustCrateHelpers, cratesIO, fetchgit }:
+with buildRustCrateHelpers;
+let inherit (lib.lists) fold;
+    inherit (lib.attrsets) recursiveUpdate;
 in
+let crates = cratesIO; in
 rec {
-  carnix = f: carnix_0_7_2 { features = carnix_0_7_2_features { carnix_0_7_2 = f; }; };
+  carnix = crates.crates.carnix."0.8.11" deps;
   __all = [ (carnix {}) ];
-  aho_corasick_0_6_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "aho-corasick";
-    version = "0.6.4";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "189v919mp6rzzgjp1khpn4zlq8ls81gh43x1lmc8kbkagdlpq888";
-    libName = "aho_corasick";
-    crateBin = [ {  name = "aho-corasick-dot"; } ];
-    inherit dependencies buildDependencies features;
+  deps.aho_corasick."0.6.8" = {
+    memchr = "2.1.0";
+  };
+  deps.ansi_term."0.11.0" = {
+    winapi = "0.3.6";
+  };
+  deps.argon2rs."0.2.5" = {
+    blake2_rfc = "0.2.18";
+    scoped_threadpool = "0.1.9";
+  };
+  deps.arrayvec."0.4.7" = {
+    nodrop = "0.1.12";
+  };
+  deps.atty."0.2.11" = {
+    termion = "1.5.1";
+    libc = "0.2.43";
+    winapi = "0.3.6";
+  };
+  deps.backtrace."0.3.9" = {
+    cfg_if = "0.1.6";
+    rustc_demangle = "0.1.9";
+    backtrace_sys = "0.1.24";
+    libc = "0.2.43";
+    winapi = "0.3.6";
+  };
+  deps.backtrace_sys."0.1.24" = {
+    libc = "0.2.43";
+    cc = "1.0.25";
+  };
+  deps.bitflags."1.0.4" = {};
+  deps.blake2_rfc."0.2.18" = {
+    arrayvec = "0.4.7";
+    constant_time_eq = "0.1.3";
+  };
+  deps.carnix."0.8.11" = {
+    clap = "2.32.0";
+    dirs = "1.0.4";
+    env_logger = "0.5.13";
+    error_chain = "0.12.0";
+    itertools = "0.7.8";
+    log = "0.4.5";
+    nom = "3.2.1";
+    regex = "1.0.5";
+    rusqlite = "0.14.0";
+    serde = "1.0.80";
+    serde_derive = "1.0.80";
+    serde_json = "1.0.32";
+    tempdir = "0.3.7";
+    toml = "0.4.8";
+  };
+  deps.cc."1.0.25" = {};
+  deps.cfg_if."0.1.6" = {};
+  deps.clap."2.32.0" = {
+    atty = "0.2.11";
+    bitflags = "1.0.4";
+    strsim = "0.7.0";
+    textwrap = "0.10.0";
+    unicode_width = "0.1.5";
+    vec_map = "0.8.1";
+    ansi_term = "0.11.0";
+  };
+  deps.constant_time_eq."0.1.3" = {};
+  deps.dirs."1.0.4" = {
+    redox_users = "0.2.0";
+    libc = "0.2.43";
+    winapi = "0.3.6";
+  };
+  deps.either."1.5.0" = {};
+  deps.env_logger."0.5.13" = {
+    atty = "0.2.11";
+    humantime = "1.1.1";
+    log = "0.4.5";
+    regex = "1.0.5";
+    termcolor = "1.0.4";
+  };
+  deps.error_chain."0.12.0" = {
+    backtrace = "0.3.9";
+  };
+  deps.failure."0.1.3" = {
+    backtrace = "0.3.9";
+    failure_derive = "0.1.3";
+  };
+  deps.failure_derive."0.1.3" = {
+    proc_macro2 = "0.4.20";
+    quote = "0.6.8";
+    syn = "0.15.13";
+    synstructure = "0.10.0";
+  };
+  deps.fuchsia_zircon."0.3.3" = {
+    bitflags = "1.0.4";
+    fuchsia_zircon_sys = "0.3.3";
+  };
+  deps.fuchsia_zircon_sys."0.3.3" = {};
+  deps.humantime."1.1.1" = {
+    quick_error = "1.2.2";
+  };
+  deps.itertools."0.7.8" = {
+    either = "1.5.0";
+  };
+  deps.itoa."0.4.3" = {};
+  deps.lazy_static."1.1.0" = {
+    version_check = "0.1.5";
+  };
+  deps.libc."0.2.43" = {};
+  deps.libsqlite3_sys."0.9.3" = {
+    pkg_config = "0.3.14";
+  };
+  deps.linked_hash_map."0.4.2" = {};
+  deps.log."0.4.5" = {
+    cfg_if = "0.1.6";
+  };
+  deps.lru_cache."0.1.1" = {
+    linked_hash_map = "0.4.2";
+  };
+  deps.memchr."1.0.2" = {
+    libc = "0.2.43";
+  };
+  deps.memchr."2.1.0" = {
+    cfg_if = "0.1.6";
+    libc = "0.2.43";
+    version_check = "0.1.5";
+  };
+  deps.nodrop."0.1.12" = {};
+  deps.nom."3.2.1" = {
+    memchr = "1.0.2";
+  };
+  deps.pkg_config."0.3.14" = {};
+  deps.proc_macro2."0.4.20" = {
+    unicode_xid = "0.1.0";
+  };
+  deps.quick_error."1.2.2" = {};
+  deps.quote."0.6.8" = {
+    proc_macro2 = "0.4.20";
+  };
+  deps.rand."0.4.3" = {
+    fuchsia_zircon = "0.3.3";
+    libc = "0.2.43";
+    winapi = "0.3.6";
+  };
+  deps.redox_syscall."0.1.40" = {};
+  deps.redox_termios."0.1.1" = {
+    redox_syscall = "0.1.40";
+  };
+  deps.redox_users."0.2.0" = {
+    argon2rs = "0.2.5";
+    failure = "0.1.3";
+    rand = "0.4.3";
+    redox_syscall = "0.1.40";
+  };
+  deps.regex."1.0.5" = {
+    aho_corasick = "0.6.8";
+    memchr = "2.1.0";
+    regex_syntax = "0.6.2";
+    thread_local = "0.3.6";
+    utf8_ranges = "1.0.1";
+  };
+  deps.regex_syntax."0.6.2" = {
+    ucd_util = "0.1.1";
+  };
+  deps.remove_dir_all."0.5.1" = {
+    winapi = "0.3.6";
+  };
+  deps.rusqlite."0.14.0" = {
+    bitflags = "1.0.4";
+    libsqlite3_sys = "0.9.3";
+    lru_cache = "0.1.1";
+    time = "0.1.40";
+  };
+  deps.rustc_demangle."0.1.9" = {};
+  deps.ryu."0.2.6" = {};
+  deps.scoped_threadpool."0.1.9" = {};
+  deps.serde."1.0.80" = {};
+  deps.serde_derive."1.0.80" = {
+    proc_macro2 = "0.4.20";
+    quote = "0.6.8";
+    syn = "0.15.13";
+  };
+  deps.serde_json."1.0.32" = {
+    itoa = "0.4.3";
+    ryu = "0.2.6";
+    serde = "1.0.80";
+  };
+  deps.strsim."0.7.0" = {};
+  deps.syn."0.15.13" = {
+    proc_macro2 = "0.4.20";
+    quote = "0.6.8";
+    unicode_xid = "0.1.0";
+  };
+  deps.synstructure."0.10.0" = {
+    proc_macro2 = "0.4.20";
+    quote = "0.6.8";
+    syn = "0.15.13";
+    unicode_xid = "0.1.0";
+  };
+  deps.tempdir."0.3.7" = {
+    rand = "0.4.3";
+    remove_dir_all = "0.5.1";
+  };
+  deps.termcolor."1.0.4" = {
+    wincolor = "1.0.1";
+  };
+  deps.termion."1.5.1" = {
+    libc = "0.2.43";
+    redox_syscall = "0.1.40";
+    redox_termios = "0.1.1";
+  };
+  deps.textwrap."0.10.0" = {
+    unicode_width = "0.1.5";
+  };
+  deps.thread_local."0.3.6" = {
+    lazy_static = "1.1.0";
+  };
+  deps.time."0.1.40" = {
+    libc = "0.2.43";
+    redox_syscall = "0.1.40";
+    winapi = "0.3.6";
+  };
+  deps.toml."0.4.8" = {
+    serde = "1.0.80";
+  };
+  deps.ucd_util."0.1.1" = {};
+  deps.unicode_width."0.1.5" = {};
+  deps.unicode_xid."0.1.0" = {};
+  deps.utf8_ranges."1.0.1" = {};
+  deps.vcpkg."0.2.6" = {};
+  deps.vec_map."0.8.1" = {};
+  deps.version_check."0.1.5" = {};
+  deps.winapi."0.3.6" = {
+    winapi_i686_pc_windows_gnu = "0.4.0";
+    winapi_x86_64_pc_windows_gnu = "0.4.0";
+  };
+  deps.winapi_i686_pc_windows_gnu."0.4.0" = {};
+  deps.winapi_util."0.1.1" = {
+    winapi = "0.3.6";
+  };
+  deps.winapi_x86_64_pc_windows_gnu."0.4.0" = {};
+  deps.wincolor."1.0.1" = {
+    winapi = "0.3.6";
+    winapi_util = "0.1.1";
   };
-  ansi_term_0_11_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "ansi_term";
-    version = "0.11.0";
-    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" "Josh Triplett <josh@joshtriplett.org>" ];
-    sha256 = "08fk0p2xvkqpmz3zlrwnf6l8sj2vngw464rvzspzp31sbgxbwm4v";
-    inherit dependencies buildDependencies features;
-  };
-  atty_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "atty";
-    version = "0.2.8";
-    authors = [ "softprops <d.tangren@gmail.com>" ];
-    sha256 = "03w1q3h4w7vhcdxdwa9cirjkzdjz3ja636fj3g64659z6yax6p6d";
-    inherit dependencies buildDependencies features;
-  };
-  backtrace_0_3_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "backtrace";
-    version = "0.3.6";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" "The Rust Project Developers" ];
-    sha256 = "00p77iqrv2p47m4y5lq1clb8fi1xfmnz2520frqx88497ff4zhrx";
-    inherit dependencies buildDependencies features;
-  };
-  backtrace_sys_0_1_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "backtrace-sys";
-    version = "0.1.16";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "1cn2c8q3dn06crmnk0p62czkngam4l8nf57wy33nz1y5g25pszwy";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  bitflags_1_0_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "bitflags";
-    version = "1.0.1";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0p4b3nr0s5nda2qmm7xdhnvh4lkqk3xd8l9ffmwbvqw137vx7mj1";
-    inherit dependencies buildDependencies features;
-  };
-  carnix_0_7_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "carnix";
-    version = "0.7.2";
-    authors = [ "pe@pijul.org <pe@pijul.org>" ];
-    sha256 = "0zsmc4wiz7vill676mcdh6ibyzmr9rn030j555ncqgavs7k5yhq5";
-    crateBin = [ {  name = "cargo-generate-nixfile";  path = "src/cargo-generate-nixfile.rs"; } {  name = "carnix";  path = "src/main.rs"; } ];
-    inherit dependencies buildDependencies features;
-  };
-  cc_1_0_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "cc";
-    version = "1.0.10";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0fqchrxcrd2j2b9x7cqs49ck7b3ilsap8s9xhs75gzgl6c1ylpdn";
-    inherit dependencies buildDependencies features;
-  };
-  cfg_if_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "cfg-if";
-    version = "0.1.2";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0x06hvrrqy96m97593823vvxcgvjaxckghwyy2jcyc8qc7c6cyhi";
-    inherit dependencies buildDependencies features;
-  };
-  clap_2_31_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "clap";
-    version = "2.31.2";
-    authors = [ "Kevin K. <kbknapp@gmail.com>" ];
-    sha256 = "0r24ziw85a8y1sf2l21y4mvv5qan3rjafcshpyfsjfadqfxsij72";
-    inherit dependencies buildDependencies features;
-  };
-  dtoa_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "dtoa";
-    version = "0.4.2";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "1bxsh6fags7nr36vlz07ik2a1rzyipc8x1y30kjk832hf2pzadmw";
-    inherit dependencies buildDependencies features;
-  };
-  either_1_5_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "either";
-    version = "1.5.0";
-    authors = [ "bluss" ];
-    sha256 = "1f7kl2ln01y02m8fpd2zrdjiwqmgfvl9nxxrfry3k19d1gd2bsvz";
-    inherit dependencies buildDependencies features;
-  };
-  env_logger_0_5_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "env_logger";
-    version = "0.5.7";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0wgd9fashmwbx5ssrxx69naam6hlb5c7qmh1nln645q4gms35i2l";
-    inherit dependencies buildDependencies features;
-  };
-  error_chain_0_11_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "error-chain";
-    version = "0.11.0";
-    authors = [ "Brian Anderson <banderson@mozilla.com>" "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" "Yamakaky <yamakaky@yamaworld.fr>" ];
-    sha256 = "19nz17q6dzp0mx2jhh9qbj45gkvvgcl7zq9z2ai5a8ihbisfj6d7";
-    inherit dependencies buildDependencies features;
-  };
-  fuchsia_zircon_0_3_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "fuchsia-zircon";
-    version = "0.3.3";
-    authors = [ "Raph Levien <raph@google.com>" ];
-    sha256 = "0jrf4shb1699r4la8z358vri8318w4mdi6qzfqy30p2ymjlca4gk";
-    inherit dependencies buildDependencies features;
-  };
-  fuchsia_zircon_sys_0_3_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "fuchsia-zircon-sys";
-    version = "0.3.3";
-    authors = [ "Raph Levien <raph@google.com>" ];
-    sha256 = "08jp1zxrm9jbrr6l26bjal4dbm8bxfy57ickdgibsqxr1n9j3hf5";
-    inherit dependencies buildDependencies features;
-  };
-  humantime_1_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "humantime";
-    version = "1.1.1";
-    authors = [ "Paul Colomiets <paul@colomiets.name>" ];
-    sha256 = "1lzdfsfzdikcp1qb6wcdvnsdv16pmzr7p7cv171vnbnyz2lrwbgn";
-    libPath = "src/lib.rs";
-    inherit dependencies buildDependencies features;
-  };
-  itertools_0_7_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "itertools";
-    version = "0.7.8";
-    authors = [ "bluss" ];
-    sha256 = "0ib30cd7d1icjxsa13mji1gry3grp72kx8p33yd84mphdbc3d357";
-    inherit dependencies buildDependencies features;
-  };
-  itoa_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "itoa";
-    version = "0.4.1";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "1jyrsmrm5q4r2ipmq5hvvkqg0mgnlbk44lm7gr0v9ymvbrh2gbij";
-    inherit dependencies buildDependencies features;
-  };
-  lazy_static_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "lazy_static";
-    version = "1.0.0";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "0wfvqyr2nvx2mbsrscg5y7gfa9skhb8p72ayanl8vl49pw24v4fh";
-    inherit dependencies buildDependencies features;
-  };
-  libc_0_2_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "libc";
-    version = "0.2.40";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1xfc39237ldzgr8x8wcflgdr8zssi3wif7g2zxc02d94gzkjsw83";
-    inherit dependencies buildDependencies features;
-  };
-  libsqlite3_sys_0_9_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "libsqlite3-sys";
-    version = "0.9.1";
-    authors = [ "John Gallagher <jgallagher@bignerdranch.com>" ];
-    sha256 = "1j599xygsh564xmx29942w0sq7w05c1jipk6dsyrxj6b33kw3fw7";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  linked_hash_map_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "linked-hash-map";
-    version = "0.4.2";
-    authors = [ "Stepan Koltsov <stepan.koltsov@gmail.com>" "Andrew Paseltiner <apaseltiner@gmail.com>" ];
-    sha256 = "04da208h6jb69f46j37jnvsw2i1wqplglp4d61csqcrhh83avbgl";
-    inherit dependencies buildDependencies features;
-  };
-  log_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "log";
-    version = "0.4.1";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "01vm8yy3wngvyj6qp1x3xpcb4xq7v67yn9l7fsma8kz28mliz90d";
-    inherit dependencies buildDependencies features;
-  };
-  lru_cache_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "lru-cache";
-    version = "0.1.1";
-    authors = [ "Stepan Koltsov <stepan.koltsov@gmail.com>" ];
-    sha256 = "1hl6kii1g54sq649gnscv858mmw7a02xj081l4vcgvrswdi2z8fw";
-    inherit dependencies buildDependencies features;
-  };
-  memchr_1_0_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "memchr";
-    version = "1.0.2";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
-    sha256 = "0dfb8ifl9nrc9kzgd5z91q6qg87sh285q1ih7xgrsglmqfav9lg7";
-    inherit dependencies buildDependencies features;
-  };
-  memchr_2_0_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "memchr";
-    version = "2.0.1";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
-    sha256 = "0ls2y47rjwapjdax6bp974gdp06ggm1v8d1h69wyydmh1nhgm5gr";
-    inherit dependencies buildDependencies features;
-  };
-  nom_3_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "nom";
-    version = "3.2.1";
-    authors = [ "contact@geoffroycouprie.com" ];
-    sha256 = "1vcllxrz9hdw6j25kn020ka3psz1vkaqh1hm3yfak2240zrxgi07";
-    inherit dependencies buildDependencies features;
-  };
-  num_traits_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num-traits";
-    version = "0.2.2";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1gcqhcd27gi72al5salxlp3m374qr3xnc3zh249f7dsrxc9rmgh0";
-    inherit dependencies buildDependencies features;
-  };
-  pkg_config_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "pkg-config";
-    version = "0.3.9";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "06k8fxgrsrxj8mjpjcq1n7mn2p1shpxif4zg9y5h09c7vy20s146";
-    inherit dependencies buildDependencies features;
-  };
-  proc_macro2_0_3_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "proc-macro2";
-    version = "0.3.6";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "1viqlvsknzvgc2j0bcz53n94zxv7c816py7hv2r27y0bv1dq4iqp";
-    inherit dependencies buildDependencies features;
-  };
-  quick_error_1_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "quick-error";
-    version = "1.2.1";
-    authors = [ "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" ];
-    sha256 = "0vq41csw68ynaq2fy5dvldh4lx7pnbw6pr332kv5rvrz4pz0jnq6";
-    inherit dependencies buildDependencies features;
-  };
-  quote_0_5_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "quote";
-    version = "0.5.1";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "0jppgddqp6vp67ns4hpyf644n5678fligp711isp0xkvfv19la3r";
-    inherit dependencies buildDependencies features;
-  };
-  rand_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rand";
-    version = "0.4.2";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0h8pkg23wb67i8904sm76iyr1jlmhklb85vbpz9c9191a24xzkfm";
-    inherit dependencies buildDependencies features;
-  };
-  redox_syscall_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "redox_syscall";
-    version = "0.1.37";
-    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
-    sha256 = "0qa0jl9cr3qp80an8vshp2mcn8rzvwiavs1398hq1vsjw7pc3h2v";
-    libName = "syscall";
-    inherit dependencies buildDependencies features;
-  };
-  redox_termios_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "redox_termios";
-    version = "0.1.1";
-    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
-    sha256 = "04s6yyzjca552hdaqlvqhp3vw0zqbc304md5czyd3axh56iry8wh";
-    libPath = "src/lib.rs";
-    inherit dependencies buildDependencies features;
-  };
-  regex_0_2_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "regex";
-    version = "0.2.10";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0cwdmcllssm984b5nnpr55rgla1yzw31kmp2imxdpgk6hvlhf1ca";
-    inherit dependencies buildDependencies features;
-  };
-  regex_syntax_0_5_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "regex-syntax";
-    version = "0.5.5";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1m5v66r6xxglgkdl1ci23qq0bl0k2wqplm6li4pmg1k7szvgxcbp";
-    inherit dependencies buildDependencies features;
-  };
-  remove_dir_all_0_5_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "remove_dir_all";
-    version = "0.5.0";
-    authors = [ "Aaronepower <theaaronepower@gmail.com>" ];
-    sha256 = "0cgmlm9xvf19z84zcb7d62c2lfv60g6gd58c9717giq7c9ib284y";
-    inherit dependencies buildDependencies features;
-  };
-  rusqlite_0_13_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rusqlite";
-    version = "0.13.0";
-    authors = [ "John Gallagher <jgallagher@bignerdranch.com>" ];
-    sha256 = "1hj2464ar2y4324sk3jx7m9byhkcp60krrrs1v1i8dlhhlnkb9hc";
-    inherit dependencies buildDependencies features;
-  };
-  rustc_demangle_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rustc-demangle";
-    version = "0.1.7";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0wrln6jvwmqrhyvqlw5vq9a2s4r04ja8mrybxjj9aaaar1fyvns6";
-    inherit dependencies buildDependencies features;
-  };
-  serde_1_0_38_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "serde";
-    version = "1.0.38";
-    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "0dri7vmzjsfmak1qq5wdinykqqvd5shpms504p8acpgyx7817jgk";
-    inherit dependencies buildDependencies features;
-  };
-  serde_derive_1_0_38_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "serde_derive";
-    version = "1.0.38";
-    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "027c13sbnqkfzc8vxx0m6wnkr68im8kdbkbnix07dgw1l616yw0m";
-    procMacro = true;
-    inherit dependencies buildDependencies features;
-  };
-  serde_derive_internals_0_23_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "serde_derive_internals";
-    version = "0.23.1";
-    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "0bjgcn2irh6sd34q3j3xkbn5ghfgiv3cfdlffb31lh0bikwpk1b4";
-    inherit dependencies buildDependencies features;
-  };
-  serde_json_1_0_14_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "serde_json";
-    version = "1.0.14";
-    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "053n2vbcx32f28pr8fxi0fxq7m3g0gm94kz9i1fmi1kiwq9j5lsj";
-    inherit dependencies buildDependencies features;
-  };
-  strsim_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "strsim";
-    version = "0.7.0";
-    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
-    sha256 = "0fy0k5f2705z73mb3x9459bpcvrx4ky8jpr4zikcbiwan4bnm0iv";
-    inherit dependencies buildDependencies features;
-  };
-  syn_0_13_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "syn";
-    version = "0.13.1";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "1pimp7fpvillhz06xz0k6450h9nis3ab6h1j2hzrzykrpxs2qnyg";
-    inherit dependencies buildDependencies features;
-  };
-  tempdir_0_3_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tempdir";
-    version = "0.3.7";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0y53sxybyljrr7lh0x0ysrsa7p7cljmwv9v80acy3rc6n97g67vy";
-    inherit dependencies buildDependencies features;
-  };
-  termcolor_0_3_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "termcolor";
-    version = "0.3.6";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "0w609sa1apl1kii67ln2g82r4rrycw45zgjq7mxxjrx1fa21v05z";
-    inherit dependencies buildDependencies features;
-  };
-  termion_1_5_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "termion";
-    version = "1.5.1";
-    authors = [ "ticki <Ticki@users.noreply.github.com>" "gycos <alexandre.bury@gmail.com>" "IGI-111 <igi-111@protonmail.com>" ];
-    sha256 = "02gq4vd8iws1f3gjrgrgpajsk2bk43nds5acbbb4s8dvrdvr8nf1";
-    inherit dependencies buildDependencies features;
-  };
-  textwrap_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "textwrap";
-    version = "0.9.0";
-    authors = [ "Martin Geisler <martin@geisler.net>" ];
-    sha256 = "18jg79ndjlwndz01mlbh82kkr2arqm658yn5kwp65l5n1hz8w4yb";
-    inherit dependencies buildDependencies features;
-  };
-  thread_local_0_3_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "thread_local";
-    version = "0.3.5";
-    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
-    sha256 = "0mkp0sp91aqsk7brgygai4igv751r1754rsxn37mig3ag5rx8np6";
-    inherit dependencies buildDependencies features;
-  };
-  time_0_1_39_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "time";
-    version = "0.1.39";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1ryy3bwhvyzj6fym123il38mk9ranm4vradj2a47l5ij8jd7w5if";
-    inherit dependencies buildDependencies features;
-  };
-  toml_0_4_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "toml";
-    version = "0.4.6";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0rfl7lyb5f67spk69s604nw87f97g7fvv36hj9v88qlr2bwyrn8v";
-    inherit dependencies buildDependencies features;
-  };
-  ucd_util_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "ucd-util";
-    version = "0.1.1";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "02a8h3siipx52b832xc8m8rwasj6nx9jpiwfldw8hp6k205hgkn0";
-    inherit dependencies buildDependencies features;
-  };
-  unicode_width_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "unicode-width";
-    version = "0.1.4";
-    authors = [ "kwantam <kwantam@gmail.com>" ];
-    sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
-    inherit dependencies buildDependencies features;
-  };
-  unicode_xid_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "unicode-xid";
-    version = "0.1.0";
-    authors = [ "erick.tryzelaar <erick.tryzelaar@gmail.com>" "kwantam <kwantam@gmail.com>" ];
-    sha256 = "05wdmwlfzxhq3nhsxn6wx4q8dhxzzfb9szsz6wiw092m1rjj01zj";
-    inherit dependencies buildDependencies features;
-  };
-  unreachable_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "unreachable";
-    version = "1.0.0";
-    authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
-    sha256 = "1am8czbk5wwr25gbp2zr007744fxjshhdqjz9liz7wl4pnv3whcf";
-    inherit dependencies buildDependencies features;
-  };
-  utf8_ranges_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "utf8-ranges";
-    version = "1.0.0";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "0rzmqprwjv9yp1n0qqgahgm24872x6c0xddfym5pfndy7a36vkn0";
-    inherit dependencies buildDependencies features;
-  };
-  vcpkg_0_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "vcpkg";
-    version = "0.2.3";
-    authors = [ "Jim McGrath <jimmc2@gmail.com>" ];
-    sha256 = "0achi8sfy0wm4q04gj7nwpq9xfx8ynk6vv4r12a3ijg26hispq0c";
-    inherit dependencies buildDependencies features;
-  };
-  vec_map_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "vec_map";
-    version = "0.8.0";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
-    sha256 = "07sgxp3cf1a4cxm9n3r27fcvqmld32bl2576mrcahnvm34j11xay";
-    inherit dependencies buildDependencies features;
-  };
-  void_1_0_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "void";
-    version = "1.0.2";
-    authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
-    sha256 = "0h1dm0dx8dhf56a83k68mijyxigqhizpskwxfdrs1drwv2cdclv3";
-    inherit dependencies buildDependencies features;
-  };
-  winapi_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "winapi";
-    version = "0.3.4";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1qbrf5dcnd8j36cawby5d9r5vx07r0l4ryf672pfncnp8895k9lx";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  winapi_i686_pc_windows_gnu_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "winapi-i686-pc-windows-gnu";
-    version = "0.4.0";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "05ihkij18r4gamjpxj4gra24514can762imjzlmak5wlzidplzrp";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  winapi_x86_64_pc_windows_gnu_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "winapi-x86_64-pc-windows-gnu";
-    version = "0.4.0";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "0n1ylmlsb8yg1v583i4xy0qmqg42275flvbc51hdqjjfjcl9vlbj";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  wincolor_0_1_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "wincolor";
-    version = "0.1.6";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "0f8m3l86pw6qi31jidqj78pgd15xj914850lyvsxkbln4f1drv47";
-    inherit dependencies buildDependencies features;
-  };
-  aho_corasick_0_6_4 = { features?(aho_corasick_0_6_4_features {}) }: aho_corasick_0_6_4_ {
-    dependencies = mapFeatures features ([ memchr_2_0_1 ]);
-  };
-  aho_corasick_0_6_4_features = f: updateFeatures f (rec {
-    aho_corasick_0_6_4.default = (f.aho_corasick_0_6_4.default or true);
-    memchr_2_0_1.default = true;
-  }) [ memchr_2_0_1_features ];
-  ansi_term_0_11_0 = { features?(ansi_term_0_11_0_features {}) }: ansi_term_0_11_0_ {
-    dependencies = (if kernel == "windows" then mapFeatures features ([ winapi_0_3_4 ]) else []);
-  };
-  ansi_term_0_11_0_features = f: updateFeatures f (rec {
-    ansi_term_0_11_0.default = (f.ansi_term_0_11_0.default or true);
-    winapi_0_3_4.consoleapi = true;
-    winapi_0_3_4.default = true;
-    winapi_0_3_4.errhandlingapi = true;
-    winapi_0_3_4.processenv = true;
-  }) [ winapi_0_3_4_features ];
-  atty_0_2_8 = { features?(atty_0_2_8_features {}) }: atty_0_2_8_ {
-    dependencies = (if kernel == "redox" then mapFeatures features ([ termion_1_5_1 ]) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_40 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_4 ]) else []);
-  };
-  atty_0_2_8_features = f: updateFeatures f (rec {
-    atty_0_2_8.default = (f.atty_0_2_8.default or true);
-    libc_0_2_40.default = (f.libc_0_2_40.default or false);
-    termion_1_5_1.default = true;
-    winapi_0_3_4.consoleapi = true;
-    winapi_0_3_4.default = true;
-    winapi_0_3_4.minwinbase = true;
-    winapi_0_3_4.minwindef = true;
-    winapi_0_3_4.processenv = true;
-    winapi_0_3_4.winbase = true;
-  }) [ termion_1_5_1_features libc_0_2_40_features winapi_0_3_4_features ];
-  backtrace_0_3_6 = { features?(backtrace_0_3_6_features {}) }: backtrace_0_3_6_ {
-    dependencies = mapFeatures features ([ cfg_if_0_1_2 rustc_demangle_0_1_7 ])
-      ++ (if (kernel == "linux" || kernel == "darwin") && !(kernel == "fuchsia") && !(kernel == "emscripten") && !(kernel == "darwin") && !(kernel == "ios") then mapFeatures features ([ ]
-      ++ (if features.backtrace_0_3_6.backtrace-sys or false then [ backtrace_sys_0_1_16 ] else [])) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_40 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ ]
-      ++ (if features.backtrace_0_3_6.winapi or false then [ winapi_0_3_4 ] else [])) else []);
-    features = mkFeatures (features.backtrace_0_3_6 or {});
-  };
-  backtrace_0_3_6_features = f: updateFeatures f (rec {
-    backtrace_0_3_6.addr2line =
-      (f.backtrace_0_3_6.addr2line or false) ||
-      (f.backtrace_0_3_6.gimli-symbolize or false) ||
-      (backtrace_0_3_6.gimli-symbolize or false);
-    backtrace_0_3_6.backtrace-sys =
-      (f.backtrace_0_3_6.backtrace-sys or false) ||
-      (f.backtrace_0_3_6.libbacktrace or false) ||
-      (backtrace_0_3_6.libbacktrace or false);
-    backtrace_0_3_6.coresymbolication =
-      (f.backtrace_0_3_6.coresymbolication or false) ||
-      (f.backtrace_0_3_6.default or false) ||
-      (backtrace_0_3_6.default or false);
-    backtrace_0_3_6.dbghelp =
-      (f.backtrace_0_3_6.dbghelp or false) ||
-      (f.backtrace_0_3_6.default or false) ||
-      (backtrace_0_3_6.default or false);
-    backtrace_0_3_6.default = (f.backtrace_0_3_6.default or true);
-    backtrace_0_3_6.dladdr =
-      (f.backtrace_0_3_6.dladdr or false) ||
-      (f.backtrace_0_3_6.default or false) ||
-      (backtrace_0_3_6.default or false);
-    backtrace_0_3_6.findshlibs =
-      (f.backtrace_0_3_6.findshlibs or false) ||
-      (f.backtrace_0_3_6.gimli-symbolize or false) ||
-      (backtrace_0_3_6.gimli-symbolize or false);
-    backtrace_0_3_6.gimli =
-      (f.backtrace_0_3_6.gimli or false) ||
-      (f.backtrace_0_3_6.gimli-symbolize or false) ||
-      (backtrace_0_3_6.gimli-symbolize or false);
-    backtrace_0_3_6.libbacktrace =
-      (f.backtrace_0_3_6.libbacktrace or false) ||
-      (f.backtrace_0_3_6.default or false) ||
-      (backtrace_0_3_6.default or false);
-    backtrace_0_3_6.libunwind =
-      (f.backtrace_0_3_6.libunwind or false) ||
-      (f.backtrace_0_3_6.default or false) ||
-      (backtrace_0_3_6.default or false);
-    backtrace_0_3_6.memmap =
-      (f.backtrace_0_3_6.memmap or false) ||
-      (f.backtrace_0_3_6.gimli-symbolize or false) ||
-      (backtrace_0_3_6.gimli-symbolize or false);
-    backtrace_0_3_6.object =
-      (f.backtrace_0_3_6.object or false) ||
-      (f.backtrace_0_3_6.gimli-symbolize or false) ||
-      (backtrace_0_3_6.gimli-symbolize or false);
-    backtrace_0_3_6.rustc-serialize =
-      (f.backtrace_0_3_6.rustc-serialize or false) ||
-      (f.backtrace_0_3_6.serialize-rustc or false) ||
-      (backtrace_0_3_6.serialize-rustc or false);
-    backtrace_0_3_6.serde =
-      (f.backtrace_0_3_6.serde or false) ||
-      (f.backtrace_0_3_6.serialize-serde or false) ||
-      (backtrace_0_3_6.serialize-serde or false);
-    backtrace_0_3_6.serde_derive =
-      (f.backtrace_0_3_6.serde_derive or false) ||
-      (f.backtrace_0_3_6.serialize-serde or false) ||
-      (backtrace_0_3_6.serialize-serde or false);
-    backtrace_0_3_6.winapi =
-      (f.backtrace_0_3_6.winapi or false) ||
-      (f.backtrace_0_3_6.dbghelp or false) ||
-      (backtrace_0_3_6.dbghelp or false);
-    backtrace_sys_0_1_16.default = true;
-    cfg_if_0_1_2.default = true;
-    libc_0_2_40.default = true;
-    rustc_demangle_0_1_7.default = true;
-    winapi_0_3_4.dbghelp = true;
-    winapi_0_3_4.default = true;
-    winapi_0_3_4.minwindef = true;
-    winapi_0_3_4.processthreadsapi = true;
-    winapi_0_3_4.std = true;
-    winapi_0_3_4.winnt = true;
-  }) [ cfg_if_0_1_2_features rustc_demangle_0_1_7_features backtrace_sys_0_1_16_features libc_0_2_40_features winapi_0_3_4_features ];
-  backtrace_sys_0_1_16 = { features?(backtrace_sys_0_1_16_features {}) }: backtrace_sys_0_1_16_ {
-    dependencies = mapFeatures features ([ libc_0_2_40 ]);
-    buildDependencies = mapFeatures features ([ cc_1_0_10 ]);
-  };
-  backtrace_sys_0_1_16_features = f: updateFeatures f (rec {
-    backtrace_sys_0_1_16.default = (f.backtrace_sys_0_1_16.default or true);
-    cc_1_0_10.default = true;
-    libc_0_2_40.default = true;
-  }) [ libc_0_2_40_features cc_1_0_10_features ];
-  bitflags_1_0_1 = { features?(bitflags_1_0_1_features {}) }: bitflags_1_0_1_ {
-    features = mkFeatures (features.bitflags_1_0_1 or {});
-  };
-  bitflags_1_0_1_features = f: updateFeatures f (rec {
-    bitflags_1_0_1.default = (f.bitflags_1_0_1.default or true);
-    bitflags_1_0_1.example_generated =
-      (f.bitflags_1_0_1.example_generated or false) ||
-      (f.bitflags_1_0_1.default or false) ||
-      (bitflags_1_0_1.default or false);
-  }) [];
-  carnix_0_7_2 = { features?(carnix_0_7_2_features {}) }: carnix_0_7_2_ {
-    dependencies = mapFeatures features ([ clap_2_31_2 env_logger_0_5_7 error_chain_0_11_0 itertools_0_7_8 log_0_4_1 nom_3_2_1 regex_0_2_10 rusqlite_0_13_0 serde_1_0_38 serde_derive_1_0_38 serde_json_1_0_14 tempdir_0_3_7 toml_0_4_6 ]);
-  };
-  carnix_0_7_2_features = f: updateFeatures f (rec {
-    carnix_0_7_2.default = (f.carnix_0_7_2.default or true);
-    clap_2_31_2.default = true;
-    env_logger_0_5_7.default = true;
-    error_chain_0_11_0.default = true;
-    itertools_0_7_8.default = true;
-    log_0_4_1.default = true;
-    nom_3_2_1.default = true;
-    regex_0_2_10.default = true;
-    rusqlite_0_13_0.default = true;
-    serde_1_0_38.default = true;
-    serde_derive_1_0_38.default = true;
-    serde_json_1_0_14.default = true;
-    tempdir_0_3_7.default = true;
-    toml_0_4_6.default = true;
-  }) [ clap_2_31_2_features env_logger_0_5_7_features error_chain_0_11_0_features itertools_0_7_8_features log_0_4_1_features nom_3_2_1_features regex_0_2_10_features rusqlite_0_13_0_features serde_1_0_38_features serde_derive_1_0_38_features serde_json_1_0_14_features tempdir_0_3_7_features toml_0_4_6_features ];
-  cc_1_0_10 = { features?(cc_1_0_10_features {}) }: cc_1_0_10_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.cc_1_0_10 or {});
-  };
-  cc_1_0_10_features = f: updateFeatures f (rec {
-    cc_1_0_10.default = (f.cc_1_0_10.default or true);
-    cc_1_0_10.rayon =
-      (f.cc_1_0_10.rayon or false) ||
-      (f.cc_1_0_10.parallel or false) ||
-      (cc_1_0_10.parallel or false);
-  }) [];
-  cfg_if_0_1_2 = { features?(cfg_if_0_1_2_features {}) }: cfg_if_0_1_2_ {};
-  cfg_if_0_1_2_features = f: updateFeatures f (rec {
-    cfg_if_0_1_2.default = (f.cfg_if_0_1_2.default or true);
-  }) [];
-  clap_2_31_2 = { features?(clap_2_31_2_features {}) }: clap_2_31_2_ {
-    dependencies = mapFeatures features ([ bitflags_1_0_1 textwrap_0_9_0 unicode_width_0_1_4 ]
-      ++ (if features.clap_2_31_2.atty or false then [ atty_0_2_8 ] else [])
-      ++ (if features.clap_2_31_2.strsim or false then [ strsim_0_7_0 ] else [])
-      ++ (if features.clap_2_31_2.vec_map or false then [ vec_map_0_8_0 ] else []))
-      ++ (if !(kernel == "windows") then mapFeatures features ([ ]
-      ++ (if features.clap_2_31_2.ansi_term or false then [ ansi_term_0_11_0 ] else [])) else []);
-    features = mkFeatures (features.clap_2_31_2 or {});
-  };
-  clap_2_31_2_features = f: updateFeatures f (rec {
-    ansi_term_0_11_0.default = true;
-    atty_0_2_8.default = true;
-    bitflags_1_0_1.default = true;
-    clap_2_31_2.ansi_term =
-      (f.clap_2_31_2.ansi_term or false) ||
-      (f.clap_2_31_2.color or false) ||
-      (clap_2_31_2.color or false);
-    clap_2_31_2.atty =
-      (f.clap_2_31_2.atty or false) ||
-      (f.clap_2_31_2.color or false) ||
-      (clap_2_31_2.color or false);
-    clap_2_31_2.clippy =
-      (f.clap_2_31_2.clippy or false) ||
-      (f.clap_2_31_2.lints or false) ||
-      (clap_2_31_2.lints or false);
-    clap_2_31_2.color =
-      (f.clap_2_31_2.color or false) ||
-      (f.clap_2_31_2.default or false) ||
-      (clap_2_31_2.default or false);
-    clap_2_31_2.default = (f.clap_2_31_2.default or true);
-    clap_2_31_2.strsim =
-      (f.clap_2_31_2.strsim or false) ||
-      (f.clap_2_31_2.suggestions or false) ||
-      (clap_2_31_2.suggestions or false);
-    clap_2_31_2.suggestions =
-      (f.clap_2_31_2.suggestions or false) ||
-      (f.clap_2_31_2.default or false) ||
-      (clap_2_31_2.default or false);
-    clap_2_31_2.term_size =
-      (f.clap_2_31_2.term_size or false) ||
-      (f.clap_2_31_2.wrap_help or false) ||
-      (clap_2_31_2.wrap_help or false);
-    clap_2_31_2.vec_map =
-      (f.clap_2_31_2.vec_map or false) ||
-      (f.clap_2_31_2.default or false) ||
-      (clap_2_31_2.default or false);
-    clap_2_31_2.yaml =
-      (f.clap_2_31_2.yaml or false) ||
-      (f.clap_2_31_2.doc or false) ||
-      (clap_2_31_2.doc or false);
-    clap_2_31_2.yaml-rust =
-      (f.clap_2_31_2.yaml-rust or false) ||
-      (f.clap_2_31_2.yaml or false) ||
-      (clap_2_31_2.yaml or false);
-    strsim_0_7_0.default = true;
-    textwrap_0_9_0.default = true;
-    textwrap_0_9_0.term_size =
-      (f.textwrap_0_9_0.term_size or false) ||
-      (clap_2_31_2.wrap_help or false) ||
-      (f.clap_2_31_2.wrap_help or false);
-    unicode_width_0_1_4.default = true;
-    vec_map_0_8_0.default = true;
-  }) [ atty_0_2_8_features bitflags_1_0_1_features strsim_0_7_0_features textwrap_0_9_0_features unicode_width_0_1_4_features vec_map_0_8_0_features ansi_term_0_11_0_features ];
-  dtoa_0_4_2 = { features?(dtoa_0_4_2_features {}) }: dtoa_0_4_2_ {};
-  dtoa_0_4_2_features = f: updateFeatures f (rec {
-    dtoa_0_4_2.default = (f.dtoa_0_4_2.default or true);
-  }) [];
-  either_1_5_0 = { features?(either_1_5_0_features {}) }: either_1_5_0_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.either_1_5_0 or {});
-  };
-  either_1_5_0_features = f: updateFeatures f (rec {
-    either_1_5_0.default = (f.either_1_5_0.default or true);
-    either_1_5_0.use_std =
-      (f.either_1_5_0.use_std or false) ||
-      (f.either_1_5_0.default or false) ||
-      (either_1_5_0.default or false);
-  }) [];
-  env_logger_0_5_7 = { features?(env_logger_0_5_7_features {}) }: env_logger_0_5_7_ {
-    dependencies = mapFeatures features ([ atty_0_2_8 humantime_1_1_1 log_0_4_1 termcolor_0_3_6 ]
-      ++ (if features.env_logger_0_5_7.regex or false then [ regex_0_2_10 ] else []));
-    features = mkFeatures (features.env_logger_0_5_7 or {});
-  };
-  env_logger_0_5_7_features = f: updateFeatures f (rec {
-    atty_0_2_8.default = true;
-    env_logger_0_5_7.default = (f.env_logger_0_5_7.default or true);
-    env_logger_0_5_7.regex =
-      (f.env_logger_0_5_7.regex or false) ||
-      (f.env_logger_0_5_7.default or false) ||
-      (env_logger_0_5_7.default or false);
-    humantime_1_1_1.default = true;
-    log_0_4_1.default = true;
-    log_0_4_1.std = true;
-    regex_0_2_10.default = true;
-    termcolor_0_3_6.default = true;
-  }) [ atty_0_2_8_features humantime_1_1_1_features log_0_4_1_features regex_0_2_10_features termcolor_0_3_6_features ];
-  error_chain_0_11_0 = { features?(error_chain_0_11_0_features {}) }: error_chain_0_11_0_ {
-    dependencies = mapFeatures features ([ ]
-      ++ (if features.error_chain_0_11_0.backtrace or false then [ backtrace_0_3_6 ] else []));
-    features = mkFeatures (features.error_chain_0_11_0 or {});
-  };
-  error_chain_0_11_0_features = f: updateFeatures f (rec {
-    backtrace_0_3_6.default = true;
-    error_chain_0_11_0.backtrace =
-      (f.error_chain_0_11_0.backtrace or false) ||
-      (f.error_chain_0_11_0.default or false) ||
-      (error_chain_0_11_0.default or false);
-    error_chain_0_11_0.default = (f.error_chain_0_11_0.default or true);
-    error_chain_0_11_0.example_generated =
-      (f.error_chain_0_11_0.example_generated or false) ||
-      (f.error_chain_0_11_0.default or false) ||
-      (error_chain_0_11_0.default or false);
-  }) [ backtrace_0_3_6_features ];
-  fuchsia_zircon_0_3_3 = { features?(fuchsia_zircon_0_3_3_features {}) }: fuchsia_zircon_0_3_3_ {
-    dependencies = mapFeatures features ([ bitflags_1_0_1 fuchsia_zircon_sys_0_3_3 ]);
-  };
-  fuchsia_zircon_0_3_3_features = f: updateFeatures f (rec {
-    bitflags_1_0_1.default = true;
-    fuchsia_zircon_0_3_3.default = (f.fuchsia_zircon_0_3_3.default or true);
-    fuchsia_zircon_sys_0_3_3.default = true;
-  }) [ bitflags_1_0_1_features fuchsia_zircon_sys_0_3_3_features ];
-  fuchsia_zircon_sys_0_3_3 = { features?(fuchsia_zircon_sys_0_3_3_features {}) }: fuchsia_zircon_sys_0_3_3_ {};
-  fuchsia_zircon_sys_0_3_3_features = f: updateFeatures f (rec {
-    fuchsia_zircon_sys_0_3_3.default = (f.fuchsia_zircon_sys_0_3_3.default or true);
-  }) [];
-  humantime_1_1_1 = { features?(humantime_1_1_1_features {}) }: humantime_1_1_1_ {
-    dependencies = mapFeatures features ([ quick_error_1_2_1 ]);
-  };
-  humantime_1_1_1_features = f: updateFeatures f (rec {
-    humantime_1_1_1.default = (f.humantime_1_1_1.default or true);
-    quick_error_1_2_1.default = true;
-  }) [ quick_error_1_2_1_features ];
-  itertools_0_7_8 = { features?(itertools_0_7_8_features {}) }: itertools_0_7_8_ {
-    dependencies = mapFeatures features ([ either_1_5_0 ]);
-    features = mkFeatures (features.itertools_0_7_8 or {});
-  };
-  itertools_0_7_8_features = f: updateFeatures f (rec {
-    either_1_5_0.default = (f.either_1_5_0.default or false);
-    itertools_0_7_8.default = (f.itertools_0_7_8.default or true);
-    itertools_0_7_8.use_std =
-      (f.itertools_0_7_8.use_std or false) ||
-      (f.itertools_0_7_8.default or false) ||
-      (itertools_0_7_8.default or false);
-  }) [ either_1_5_0_features ];
-  itoa_0_4_1 = { features?(itoa_0_4_1_features {}) }: itoa_0_4_1_ {
-    features = mkFeatures (features.itoa_0_4_1 or {});
-  };
-  itoa_0_4_1_features = f: updateFeatures f (rec {
-    itoa_0_4_1.default = (f.itoa_0_4_1.default or true);
-    itoa_0_4_1.std =
-      (f.itoa_0_4_1.std or false) ||
-      (f.itoa_0_4_1.default or false) ||
-      (itoa_0_4_1.default or false);
-  }) [];
-  lazy_static_1_0_0 = { features?(lazy_static_1_0_0_features {}) }: lazy_static_1_0_0_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.lazy_static_1_0_0 or {});
-  };
-  lazy_static_1_0_0_features = f: updateFeatures f (rec {
-    lazy_static_1_0_0.compiletest_rs =
-      (f.lazy_static_1_0_0.compiletest_rs or false) ||
-      (f.lazy_static_1_0_0.compiletest or false) ||
-      (lazy_static_1_0_0.compiletest or false);
-    lazy_static_1_0_0.default = (f.lazy_static_1_0_0.default or true);
-    lazy_static_1_0_0.nightly =
-      (f.lazy_static_1_0_0.nightly or false) ||
-      (f.lazy_static_1_0_0.spin_no_std or false) ||
-      (lazy_static_1_0_0.spin_no_std or false);
-    lazy_static_1_0_0.spin =
-      (f.lazy_static_1_0_0.spin or false) ||
-      (f.lazy_static_1_0_0.spin_no_std or false) ||
-      (lazy_static_1_0_0.spin_no_std or false);
-  }) [];
-  libc_0_2_40 = { features?(libc_0_2_40_features {}) }: libc_0_2_40_ {
-    features = mkFeatures (features.libc_0_2_40 or {});
-  };
-  libc_0_2_40_features = f: updateFeatures f (rec {
-    libc_0_2_40.default = (f.libc_0_2_40.default or true);
-    libc_0_2_40.use_std =
-      (f.libc_0_2_40.use_std or false) ||
-      (f.libc_0_2_40.default or false) ||
-      (libc_0_2_40.default or false);
-  }) [];
-  libsqlite3_sys_0_9_1 = { features?(libsqlite3_sys_0_9_1_features {}) }: libsqlite3_sys_0_9_1_ {
-    dependencies = (if abi == "msvc" then mapFeatures features ([]) else []);
-    buildDependencies = mapFeatures features ([ ]
-      ++ (if features.libsqlite3_sys_0_9_1.pkg-config or false then [ pkg_config_0_3_9 ] else []));
-    features = mkFeatures (features.libsqlite3_sys_0_9_1 or {});
-  };
-  libsqlite3_sys_0_9_1_features = f: updateFeatures f (rec {
-    libsqlite3_sys_0_9_1.bindgen =
-      (f.libsqlite3_sys_0_9_1.bindgen or false) ||
-      (f.libsqlite3_sys_0_9_1.buildtime_bindgen or false) ||
-      (libsqlite3_sys_0_9_1.buildtime_bindgen or false);
-    libsqlite3_sys_0_9_1.cc =
-      (f.libsqlite3_sys_0_9_1.cc or false) ||
-      (f.libsqlite3_sys_0_9_1.bundled or false) ||
-      (libsqlite3_sys_0_9_1.bundled or false);
-    libsqlite3_sys_0_9_1.default = (f.libsqlite3_sys_0_9_1.default or true);
-    libsqlite3_sys_0_9_1.min_sqlite_version_3_6_8 =
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_6_8 or false) ||
-      (f.libsqlite3_sys_0_9_1.default or false) ||
-      (libsqlite3_sys_0_9_1.default or false);
-    libsqlite3_sys_0_9_1.pkg-config =
-      (f.libsqlite3_sys_0_9_1.pkg-config or false) ||
-      (f.libsqlite3_sys_0_9_1.buildtime_bindgen or false) ||
-      (libsqlite3_sys_0_9_1.buildtime_bindgen or false) ||
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_6_11 or false) ||
-      (libsqlite3_sys_0_9_1.min_sqlite_version_3_6_11 or false) ||
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_6_23 or false) ||
-      (libsqlite3_sys_0_9_1.min_sqlite_version_3_6_23 or false) ||
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_6_8 or false) ||
-      (libsqlite3_sys_0_9_1.min_sqlite_version_3_6_8 or false) ||
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_7_16 or false) ||
-      (libsqlite3_sys_0_9_1.min_sqlite_version_3_7_16 or false) ||
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_7_3 or false) ||
-      (libsqlite3_sys_0_9_1.min_sqlite_version_3_7_3 or false) ||
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_7_4 or false) ||
-      (libsqlite3_sys_0_9_1.min_sqlite_version_3_7_4 or false);
-    libsqlite3_sys_0_9_1.vcpkg =
-      (f.libsqlite3_sys_0_9_1.vcpkg or false) ||
-      (f.libsqlite3_sys_0_9_1.buildtime_bindgen or false) ||
-      (libsqlite3_sys_0_9_1.buildtime_bindgen or false) ||
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_6_11 or false) ||
-      (libsqlite3_sys_0_9_1.min_sqlite_version_3_6_11 or false) ||
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_6_23 or false) ||
-      (libsqlite3_sys_0_9_1.min_sqlite_version_3_6_23 or false) ||
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_6_8 or false) ||
-      (libsqlite3_sys_0_9_1.min_sqlite_version_3_6_8 or false) ||
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_7_16 or false) ||
-      (libsqlite3_sys_0_9_1.min_sqlite_version_3_7_16 or false) ||
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_7_3 or false) ||
-      (libsqlite3_sys_0_9_1.min_sqlite_version_3_7_3 or false) ||
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_7_4 or false) ||
-      (libsqlite3_sys_0_9_1.min_sqlite_version_3_7_4 or false);
-    pkg_config_0_3_9.default = true;
-  }) [ pkg_config_0_3_9_features ];
-  linked_hash_map_0_4_2 = { features?(linked_hash_map_0_4_2_features {}) }: linked_hash_map_0_4_2_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.linked_hash_map_0_4_2 or {});
-  };
-  linked_hash_map_0_4_2_features = f: updateFeatures f (rec {
-    linked_hash_map_0_4_2.default = (f.linked_hash_map_0_4_2.default or true);
-    linked_hash_map_0_4_2.heapsize =
-      (f.linked_hash_map_0_4_2.heapsize or false) ||
-      (f.linked_hash_map_0_4_2.heapsize_impl or false) ||
-      (linked_hash_map_0_4_2.heapsize_impl or false);
-    linked_hash_map_0_4_2.serde =
-      (f.linked_hash_map_0_4_2.serde or false) ||
-      (f.linked_hash_map_0_4_2.serde_impl or false) ||
-      (linked_hash_map_0_4_2.serde_impl or false);
-    linked_hash_map_0_4_2.serde_test =
-      (f.linked_hash_map_0_4_2.serde_test or false) ||
-      (f.linked_hash_map_0_4_2.serde_impl or false) ||
-      (linked_hash_map_0_4_2.serde_impl or false);
-  }) [];
-  log_0_4_1 = { features?(log_0_4_1_features {}) }: log_0_4_1_ {
-    dependencies = mapFeatures features ([ cfg_if_0_1_2 ]);
-    features = mkFeatures (features.log_0_4_1 or {});
-  };
-  log_0_4_1_features = f: updateFeatures f (rec {
-    cfg_if_0_1_2.default = true;
-    log_0_4_1.default = (f.log_0_4_1.default or true);
-  }) [ cfg_if_0_1_2_features ];
-  lru_cache_0_1_1 = { features?(lru_cache_0_1_1_features {}) }: lru_cache_0_1_1_ {
-    dependencies = mapFeatures features ([ linked_hash_map_0_4_2 ]);
-    features = mkFeatures (features.lru_cache_0_1_1 or {});
-  };
-  lru_cache_0_1_1_features = f: updateFeatures f (rec {
-    linked_hash_map_0_4_2.default = true;
-    linked_hash_map_0_4_2.heapsize_impl =
-      (f.linked_hash_map_0_4_2.heapsize_impl or false) ||
-      (lru_cache_0_1_1.heapsize_impl or false) ||
-      (f.lru_cache_0_1_1.heapsize_impl or false);
-    lru_cache_0_1_1.default = (f.lru_cache_0_1_1.default or true);
-    lru_cache_0_1_1.heapsize =
-      (f.lru_cache_0_1_1.heapsize or false) ||
-      (f.lru_cache_0_1_1.heapsize_impl or false) ||
-      (lru_cache_0_1_1.heapsize_impl or false);
-  }) [ linked_hash_map_0_4_2_features ];
-  memchr_1_0_2 = { features?(memchr_1_0_2_features {}) }: memchr_1_0_2_ {
-    dependencies = mapFeatures features ([ ]
-      ++ (if features.memchr_1_0_2.libc or false then [ libc_0_2_40 ] else []));
-    features = mkFeatures (features.memchr_1_0_2 or {});
-  };
-  memchr_1_0_2_features = f: updateFeatures f (rec {
-    libc_0_2_40.default = (f.libc_0_2_40.default or false);
-    libc_0_2_40.use_std =
-      (f.libc_0_2_40.use_std or false) ||
-      (memchr_1_0_2.use_std or false) ||
-      (f.memchr_1_0_2.use_std or false);
-    memchr_1_0_2.default = (f.memchr_1_0_2.default or true);
-    memchr_1_0_2.libc =
-      (f.memchr_1_0_2.libc or false) ||
-      (f.memchr_1_0_2.default or false) ||
-      (memchr_1_0_2.default or false) ||
-      (f.memchr_1_0_2.use_std or false) ||
-      (memchr_1_0_2.use_std or false);
-    memchr_1_0_2.use_std =
-      (f.memchr_1_0_2.use_std or false) ||
-      (f.memchr_1_0_2.default or false) ||
-      (memchr_1_0_2.default or false);
-  }) [ libc_0_2_40_features ];
-  memchr_2_0_1 = { features?(memchr_2_0_1_features {}) }: memchr_2_0_1_ {
-    dependencies = mapFeatures features ([ ]
-      ++ (if features.memchr_2_0_1.libc or false then [ libc_0_2_40 ] else []));
-    features = mkFeatures (features.memchr_2_0_1 or {});
-  };
-  memchr_2_0_1_features = f: updateFeatures f (rec {
-    libc_0_2_40.default = (f.libc_0_2_40.default or false);
-    libc_0_2_40.use_std =
-      (f.libc_0_2_40.use_std or false) ||
-      (memchr_2_0_1.use_std or false) ||
-      (f.memchr_2_0_1.use_std or false);
-    memchr_2_0_1.default = (f.memchr_2_0_1.default or true);
-    memchr_2_0_1.libc =
-      (f.memchr_2_0_1.libc or false) ||
-      (f.memchr_2_0_1.default or false) ||
-      (memchr_2_0_1.default or false) ||
-      (f.memchr_2_0_1.use_std or false) ||
-      (memchr_2_0_1.use_std or false);
-    memchr_2_0_1.use_std =
-      (f.memchr_2_0_1.use_std or false) ||
-      (f.memchr_2_0_1.default or false) ||
-      (memchr_2_0_1.default or false);
-  }) [ libc_0_2_40_features ];
-  nom_3_2_1 = { features?(nom_3_2_1_features {}) }: nom_3_2_1_ {
-    dependencies = mapFeatures features ([ memchr_1_0_2 ]);
-    features = mkFeatures (features.nom_3_2_1 or {});
-  };
-  nom_3_2_1_features = f: updateFeatures f (rec {
-    memchr_1_0_2.default = (f.memchr_1_0_2.default or false);
-    memchr_1_0_2.use_std =
-      (f.memchr_1_0_2.use_std or false) ||
-      (nom_3_2_1.std or false) ||
-      (f.nom_3_2_1.std or false);
-    nom_3_2_1.compiler_error =
-      (f.nom_3_2_1.compiler_error or false) ||
-      (f.nom_3_2_1.nightly or false) ||
-      (nom_3_2_1.nightly or false);
-    nom_3_2_1.default = (f.nom_3_2_1.default or true);
-    nom_3_2_1.lazy_static =
-      (f.nom_3_2_1.lazy_static or false) ||
-      (f.nom_3_2_1.regexp_macros or false) ||
-      (nom_3_2_1.regexp_macros or false);
-    nom_3_2_1.regex =
-      (f.nom_3_2_1.regex or false) ||
-      (f.nom_3_2_1.regexp or false) ||
-      (nom_3_2_1.regexp or false);
-    nom_3_2_1.regexp =
-      (f.nom_3_2_1.regexp or false) ||
-      (f.nom_3_2_1.regexp_macros or false) ||
-      (nom_3_2_1.regexp_macros or false);
-    nom_3_2_1.std =
-      (f.nom_3_2_1.std or false) ||
-      (f.nom_3_2_1.default or false) ||
-      (nom_3_2_1.default or false);
-    nom_3_2_1.stream =
-      (f.nom_3_2_1.stream or false) ||
-      (f.nom_3_2_1.default or false) ||
-      (nom_3_2_1.default or false);
-  }) [ memchr_1_0_2_features ];
-  num_traits_0_2_2 = { features?(num_traits_0_2_2_features {}) }: num_traits_0_2_2_ {
-    features = mkFeatures (features.num_traits_0_2_2 or {});
-  };
-  num_traits_0_2_2_features = f: updateFeatures f (rec {
-    num_traits_0_2_2.default = (f.num_traits_0_2_2.default or true);
-    num_traits_0_2_2.std =
-      (f.num_traits_0_2_2.std or false) ||
-      (f.num_traits_0_2_2.default or false) ||
-      (num_traits_0_2_2.default or false);
-  }) [];
-  pkg_config_0_3_9 = { features?(pkg_config_0_3_9_features {}) }: pkg_config_0_3_9_ {};
-  pkg_config_0_3_9_features = f: updateFeatures f (rec {
-    pkg_config_0_3_9.default = (f.pkg_config_0_3_9.default or true);
-  }) [];
-  proc_macro2_0_3_6 = { features?(proc_macro2_0_3_6_features {}) }: proc_macro2_0_3_6_ {
-    dependencies = mapFeatures features ([ unicode_xid_0_1_0 ]);
-    features = mkFeatures (features.proc_macro2_0_3_6 or {});
-  };
-  proc_macro2_0_3_6_features = f: updateFeatures f (rec {
-    proc_macro2_0_3_6.default = (f.proc_macro2_0_3_6.default or true);
-    proc_macro2_0_3_6.proc-macro =
-      (f.proc_macro2_0_3_6.proc-macro or false) ||
-      (f.proc_macro2_0_3_6.default or false) ||
-      (proc_macro2_0_3_6.default or false) ||
-      (f.proc_macro2_0_3_6.nightly or false) ||
-      (proc_macro2_0_3_6.nightly or false);
-    unicode_xid_0_1_0.default = true;
-  }) [ unicode_xid_0_1_0_features ];
-  quick_error_1_2_1 = { features?(quick_error_1_2_1_features {}) }: quick_error_1_2_1_ {};
-  quick_error_1_2_1_features = f: updateFeatures f (rec {
-    quick_error_1_2_1.default = (f.quick_error_1_2_1.default or true);
-  }) [];
-  quote_0_5_1 = { features?(quote_0_5_1_features {}) }: quote_0_5_1_ {
-    dependencies = mapFeatures features ([ proc_macro2_0_3_6 ]);
-    features = mkFeatures (features.quote_0_5_1 or {});
-  };
-  quote_0_5_1_features = f: updateFeatures f (rec {
-    proc_macro2_0_3_6.default = (f.proc_macro2_0_3_6.default or false);
-    proc_macro2_0_3_6.proc-macro =
-      (f.proc_macro2_0_3_6.proc-macro or false) ||
-      (quote_0_5_1.proc-macro or false) ||
-      (f.quote_0_5_1.proc-macro or false);
-    quote_0_5_1.default = (f.quote_0_5_1.default or true);
-    quote_0_5_1.proc-macro =
-      (f.quote_0_5_1.proc-macro or false) ||
-      (f.quote_0_5_1.default or false) ||
-      (quote_0_5_1.default or false);
-  }) [ proc_macro2_0_3_6_features ];
-  rand_0_4_2 = { features?(rand_0_4_2_features {}) }: rand_0_4_2_ {
-    dependencies = (if kernel == "fuchsia" then mapFeatures features ([ fuchsia_zircon_0_3_3 ]) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ ]
-      ++ (if features.rand_0_4_2.libc or false then [ libc_0_2_40 ] else [])) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_4 ]) else []);
-    features = mkFeatures (features.rand_0_4_2 or {});
-  };
-  rand_0_4_2_features = f: updateFeatures f (rec {
-    fuchsia_zircon_0_3_3.default = true;
-    libc_0_2_40.default = true;
-    rand_0_4_2.default = (f.rand_0_4_2.default or true);
-    rand_0_4_2.i128_support =
-      (f.rand_0_4_2.i128_support or false) ||
-      (f.rand_0_4_2.nightly or false) ||
-      (rand_0_4_2.nightly or false);
-    rand_0_4_2.libc =
-      (f.rand_0_4_2.libc or false) ||
-      (f.rand_0_4_2.std or false) ||
-      (rand_0_4_2.std or false);
-    rand_0_4_2.std =
-      (f.rand_0_4_2.std or false) ||
-      (f.rand_0_4_2.default or false) ||
-      (rand_0_4_2.default or false);
-    winapi_0_3_4.default = true;
-    winapi_0_3_4.minwindef = true;
-    winapi_0_3_4.ntsecapi = true;
-    winapi_0_3_4.profileapi = true;
-    winapi_0_3_4.winnt = true;
-  }) [ fuchsia_zircon_0_3_3_features libc_0_2_40_features winapi_0_3_4_features ];
-  redox_syscall_0_1_37 = { features?(redox_syscall_0_1_37_features {}) }: redox_syscall_0_1_37_ {};
-  redox_syscall_0_1_37_features = f: updateFeatures f (rec {
-    redox_syscall_0_1_37.default = (f.redox_syscall_0_1_37.default or true);
-  }) [];
-  redox_termios_0_1_1 = { features?(redox_termios_0_1_1_features {}) }: redox_termios_0_1_1_ {
-    dependencies = mapFeatures features ([ redox_syscall_0_1_37 ]);
-  };
-  redox_termios_0_1_1_features = f: updateFeatures f (rec {
-    redox_syscall_0_1_37.default = true;
-    redox_termios_0_1_1.default = (f.redox_termios_0_1_1.default or true);
-  }) [ redox_syscall_0_1_37_features ];
-  regex_0_2_10 = { features?(regex_0_2_10_features {}) }: regex_0_2_10_ {
-    dependencies = mapFeatures features ([ aho_corasick_0_6_4 memchr_2_0_1 regex_syntax_0_5_5 thread_local_0_3_5 utf8_ranges_1_0_0 ]);
-    features = mkFeatures (features.regex_0_2_10 or {});
-  };
-  regex_0_2_10_features = f: updateFeatures f (rec {
-    aho_corasick_0_6_4.default = true;
-    memchr_2_0_1.default = true;
-    regex_0_2_10.default = (f.regex_0_2_10.default or true);
-    regex_0_2_10.pattern =
-      (f.regex_0_2_10.pattern or false) ||
-      (f.regex_0_2_10.unstable or false) ||
-      (regex_0_2_10.unstable or false);
-    regex_syntax_0_5_5.default = true;
-    thread_local_0_3_5.default = true;
-    utf8_ranges_1_0_0.default = true;
-  }) [ aho_corasick_0_6_4_features memchr_2_0_1_features regex_syntax_0_5_5_features thread_local_0_3_5_features utf8_ranges_1_0_0_features ];
-  regex_syntax_0_5_5 = { features?(regex_syntax_0_5_5_features {}) }: regex_syntax_0_5_5_ {
-    dependencies = mapFeatures features ([ ucd_util_0_1_1 ]);
-  };
-  regex_syntax_0_5_5_features = f: updateFeatures f (rec {
-    regex_syntax_0_5_5.default = (f.regex_syntax_0_5_5.default or true);
-    ucd_util_0_1_1.default = true;
-  }) [ ucd_util_0_1_1_features ];
-  remove_dir_all_0_5_0 = { features?(remove_dir_all_0_5_0_features {}) }: remove_dir_all_0_5_0_ {
-    dependencies = (if kernel == "windows" then mapFeatures features ([ winapi_0_3_4 ]) else []);
-  };
-  remove_dir_all_0_5_0_features = f: updateFeatures f (rec {
-    remove_dir_all_0_5_0.default = (f.remove_dir_all_0_5_0.default or true);
-    winapi_0_3_4.default = true;
-    winapi_0_3_4.errhandlingapi = true;
-    winapi_0_3_4.fileapi = true;
-    winapi_0_3_4.std = true;
-    winapi_0_3_4.winbase = true;
-    winapi_0_3_4.winerror = true;
-  }) [ winapi_0_3_4_features ];
-  rusqlite_0_13_0 = { features?(rusqlite_0_13_0_features {}) }: rusqlite_0_13_0_ {
-    dependencies = mapFeatures features ([ bitflags_1_0_1 libsqlite3_sys_0_9_1 lru_cache_0_1_1 time_0_1_39 ]);
-    features = mkFeatures (features.rusqlite_0_13_0 or {});
-  };
-  rusqlite_0_13_0_features = f: updateFeatures f (rec {
-    bitflags_1_0_1.default = true;
-    libsqlite3_sys_0_9_1.buildtime_bindgen =
-      (f.libsqlite3_sys_0_9_1.buildtime_bindgen or false) ||
-      (rusqlite_0_13_0.buildtime_bindgen or false) ||
-      (f.rusqlite_0_13_0.buildtime_bindgen or false);
-    libsqlite3_sys_0_9_1.bundled =
-      (f.libsqlite3_sys_0_9_1.bundled or false) ||
-      (rusqlite_0_13_0.bundled or false) ||
-      (f.rusqlite_0_13_0.bundled or false);
-    libsqlite3_sys_0_9_1.default = true;
-    libsqlite3_sys_0_9_1.min_sqlite_version_3_6_11 =
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_6_11 or false) ||
-      (rusqlite_0_13_0.backup or false) ||
-      (f.rusqlite_0_13_0.backup or false);
-    libsqlite3_sys_0_9_1.min_sqlite_version_3_6_23 =
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_6_23 or false) ||
-      (rusqlite_0_13_0.trace or false) ||
-      (f.rusqlite_0_13_0.trace or false);
-    libsqlite3_sys_0_9_1.min_sqlite_version_3_7_3 =
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_7_3 or false) ||
-      (rusqlite_0_13_0.functions or false) ||
-      (f.rusqlite_0_13_0.functions or false);
-    libsqlite3_sys_0_9_1.min_sqlite_version_3_7_4 =
-      (f.libsqlite3_sys_0_9_1.min_sqlite_version_3_7_4 or false) ||
-      (rusqlite_0_13_0.blob or false) ||
-      (f.rusqlite_0_13_0.blob or false);
-    libsqlite3_sys_0_9_1.sqlcipher =
-      (f.libsqlite3_sys_0_9_1.sqlcipher or false) ||
-      (rusqlite_0_13_0.sqlcipher or false) ||
-      (f.rusqlite_0_13_0.sqlcipher or false);
-    lru_cache_0_1_1.default = true;
-    rusqlite_0_13_0.default = (f.rusqlite_0_13_0.default or true);
-    time_0_1_39.default = true;
-  }) [ bitflags_1_0_1_features libsqlite3_sys_0_9_1_features lru_cache_0_1_1_features time_0_1_39_features ];
-  rustc_demangle_0_1_7 = { features?(rustc_demangle_0_1_7_features {}) }: rustc_demangle_0_1_7_ {};
-  rustc_demangle_0_1_7_features = f: updateFeatures f (rec {
-    rustc_demangle_0_1_7.default = (f.rustc_demangle_0_1_7.default or true);
-  }) [];
-  serde_1_0_38 = { features?(serde_1_0_38_features {}) }: serde_1_0_38_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.serde_1_0_38 or {});
-  };
-  serde_1_0_38_features = f: updateFeatures f (rec {
-    serde_1_0_38.default = (f.serde_1_0_38.default or true);
-    serde_1_0_38.serde_derive =
-      (f.serde_1_0_38.serde_derive or false) ||
-      (f.serde_1_0_38.derive or false) ||
-      (serde_1_0_38.derive or false) ||
-      (f.serde_1_0_38.playground or false) ||
-      (serde_1_0_38.playground or false);
-    serde_1_0_38.std =
-      (f.serde_1_0_38.std or false) ||
-      (f.serde_1_0_38.default or false) ||
-      (serde_1_0_38.default or false);
-    serde_1_0_38.unstable =
-      (f.serde_1_0_38.unstable or false) ||
-      (f.serde_1_0_38.alloc or false) ||
-      (serde_1_0_38.alloc or false);
-  }) [];
-  serde_derive_1_0_38 = { features?(serde_derive_1_0_38_features {}) }: serde_derive_1_0_38_ {
-    dependencies = mapFeatures features ([ proc_macro2_0_3_6 quote_0_5_1 serde_derive_internals_0_23_1 syn_0_13_1 ]);
-    features = mkFeatures (features.serde_derive_1_0_38 or {});
-  };
-  serde_derive_1_0_38_features = f: updateFeatures f (rec {
-    proc_macro2_0_3_6.default = true;
-    quote_0_5_1.default = true;
-    serde_derive_1_0_38.default = (f.serde_derive_1_0_38.default or true);
-    serde_derive_internals_0_23_1.default = (f.serde_derive_internals_0_23_1.default or false);
-    syn_0_13_1.default = true;
-    syn_0_13_1.visit = true;
-  }) [ proc_macro2_0_3_6_features quote_0_5_1_features serde_derive_internals_0_23_1_features syn_0_13_1_features ];
-  serde_derive_internals_0_23_1 = { features?(serde_derive_internals_0_23_1_features {}) }: serde_derive_internals_0_23_1_ {
-    dependencies = mapFeatures features ([ proc_macro2_0_3_6 syn_0_13_1 ]);
-  };
-  serde_derive_internals_0_23_1_features = f: updateFeatures f (rec {
-    proc_macro2_0_3_6.default = true;
-    serde_derive_internals_0_23_1.default = (f.serde_derive_internals_0_23_1.default or true);
-    syn_0_13_1.clone-impls = true;
-    syn_0_13_1.default = (f.syn_0_13_1.default or false);
-    syn_0_13_1.derive = true;
-    syn_0_13_1.parsing = true;
-  }) [ proc_macro2_0_3_6_features syn_0_13_1_features ];
-  serde_json_1_0_14 = { features?(serde_json_1_0_14_features {}) }: serde_json_1_0_14_ {
-    dependencies = mapFeatures features ([ dtoa_0_4_2 itoa_0_4_1 num_traits_0_2_2 serde_1_0_38 ]);
-    features = mkFeatures (features.serde_json_1_0_14 or {});
-  };
-  serde_json_1_0_14_features = f: updateFeatures f (rec {
-    dtoa_0_4_2.default = true;
-    itoa_0_4_1.default = true;
-    num_traits_0_2_2.default = (f.num_traits_0_2_2.default or false);
-    serde_1_0_38.default = true;
-    serde_json_1_0_14.default = (f.serde_json_1_0_14.default or true);
-    serde_json_1_0_14.linked-hash-map =
-      (f.serde_json_1_0_14.linked-hash-map or false) ||
-      (f.serde_json_1_0_14.preserve_order or false) ||
-      (serde_json_1_0_14.preserve_order or false);
-  }) [ dtoa_0_4_2_features itoa_0_4_1_features num_traits_0_2_2_features serde_1_0_38_features ];
-  strsim_0_7_0 = { features?(strsim_0_7_0_features {}) }: strsim_0_7_0_ {};
-  strsim_0_7_0_features = f: updateFeatures f (rec {
-    strsim_0_7_0.default = (f.strsim_0_7_0.default or true);
-  }) [];
-  syn_0_13_1 = { features?(syn_0_13_1_features {}) }: syn_0_13_1_ {
-    dependencies = mapFeatures features ([ proc_macro2_0_3_6 unicode_xid_0_1_0 ]
-      ++ (if features.syn_0_13_1.quote or false then [ quote_0_5_1 ] else []));
-    features = mkFeatures (features.syn_0_13_1 or {});
-  };
-  syn_0_13_1_features = f: updateFeatures f (rec {
-    proc_macro2_0_3_6.default = (f.proc_macro2_0_3_6.default or false);
-    proc_macro2_0_3_6.proc-macro =
-      (f.proc_macro2_0_3_6.proc-macro or false) ||
-      (syn_0_13_1.proc-macro or false) ||
-      (f.syn_0_13_1.proc-macro or false);
-    quote_0_5_1.default = (f.quote_0_5_1.default or false);
-    quote_0_5_1.proc-macro =
-      (f.quote_0_5_1.proc-macro or false) ||
-      (syn_0_13_1.proc-macro or false) ||
-      (f.syn_0_13_1.proc-macro or false);
-    syn_0_13_1.clone-impls =
-      (f.syn_0_13_1.clone-impls or false) ||
-      (f.syn_0_13_1.default or false) ||
-      (syn_0_13_1.default or false);
-    syn_0_13_1.default = (f.syn_0_13_1.default or true);
-    syn_0_13_1.derive =
-      (f.syn_0_13_1.derive or false) ||
-      (f.syn_0_13_1.default or false) ||
-      (syn_0_13_1.default or false);
-    syn_0_13_1.parsing =
-      (f.syn_0_13_1.parsing or false) ||
-      (f.syn_0_13_1.default or false) ||
-      (syn_0_13_1.default or false);
-    syn_0_13_1.printing =
-      (f.syn_0_13_1.printing or false) ||
-      (f.syn_0_13_1.default or false) ||
-      (syn_0_13_1.default or false);
-    syn_0_13_1.proc-macro =
-      (f.syn_0_13_1.proc-macro or false) ||
-      (f.syn_0_13_1.default or false) ||
-      (syn_0_13_1.default or false);
-    syn_0_13_1.quote =
-      (f.syn_0_13_1.quote or false) ||
-      (f.syn_0_13_1.printing or false) ||
-      (syn_0_13_1.printing or false);
-    unicode_xid_0_1_0.default = true;
-  }) [ proc_macro2_0_3_6_features quote_0_5_1_features unicode_xid_0_1_0_features ];
-  tempdir_0_3_7 = { features?(tempdir_0_3_7_features {}) }: tempdir_0_3_7_ {
-    dependencies = mapFeatures features ([ rand_0_4_2 remove_dir_all_0_5_0 ]);
-  };
-  tempdir_0_3_7_features = f: updateFeatures f (rec {
-    rand_0_4_2.default = true;
-    remove_dir_all_0_5_0.default = true;
-    tempdir_0_3_7.default = (f.tempdir_0_3_7.default or true);
-  }) [ rand_0_4_2_features remove_dir_all_0_5_0_features ];
-  termcolor_0_3_6 = { features?(termcolor_0_3_6_features {}) }: termcolor_0_3_6_ {
-    dependencies = (if kernel == "windows" then mapFeatures features ([ wincolor_0_1_6 ]) else []);
-  };
-  termcolor_0_3_6_features = f: updateFeatures f (rec {
-    termcolor_0_3_6.default = (f.termcolor_0_3_6.default or true);
-    wincolor_0_1_6.default = true;
-  }) [ wincolor_0_1_6_features ];
-  termion_1_5_1 = { features?(termion_1_5_1_features {}) }: termion_1_5_1_ {
-    dependencies = (if !(kernel == "redox") then mapFeatures features ([ libc_0_2_40 ]) else [])
-      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_37 redox_termios_0_1_1 ]) else []);
-  };
-  termion_1_5_1_features = f: updateFeatures f (rec {
-    libc_0_2_40.default = true;
-    redox_syscall_0_1_37.default = true;
-    redox_termios_0_1_1.default = true;
-    termion_1_5_1.default = (f.termion_1_5_1.default or true);
-  }) [ libc_0_2_40_features redox_syscall_0_1_37_features redox_termios_0_1_1_features ];
-  textwrap_0_9_0 = { features?(textwrap_0_9_0_features {}) }: textwrap_0_9_0_ {
-    dependencies = mapFeatures features ([ unicode_width_0_1_4 ]);
-  };
-  textwrap_0_9_0_features = f: updateFeatures f (rec {
-    textwrap_0_9_0.default = (f.textwrap_0_9_0.default or true);
-    unicode_width_0_1_4.default = true;
-  }) [ unicode_width_0_1_4_features ];
-  thread_local_0_3_5 = { features?(thread_local_0_3_5_features {}) }: thread_local_0_3_5_ {
-    dependencies = mapFeatures features ([ lazy_static_1_0_0 unreachable_1_0_0 ]);
-  };
-  thread_local_0_3_5_features = f: updateFeatures f (rec {
-    lazy_static_1_0_0.default = true;
-    thread_local_0_3_5.default = (f.thread_local_0_3_5.default or true);
-    unreachable_1_0_0.default = true;
-  }) [ lazy_static_1_0_0_features unreachable_1_0_0_features ];
-  time_0_1_39 = { features?(time_0_1_39_features {}) }: time_0_1_39_ {
-    dependencies = mapFeatures features ([ libc_0_2_40 ])
-      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_37 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_4 ]) else []);
-  };
-  time_0_1_39_features = f: updateFeatures f (rec {
-    libc_0_2_40.default = true;
-    redox_syscall_0_1_37.default = true;
-    time_0_1_39.default = (f.time_0_1_39.default or true);
-    winapi_0_3_4.default = true;
-    winapi_0_3_4.minwinbase = true;
-    winapi_0_3_4.minwindef = true;
-    winapi_0_3_4.ntdef = true;
-    winapi_0_3_4.profileapi = true;
-    winapi_0_3_4.std = true;
-    winapi_0_3_4.sysinfoapi = true;
-    winapi_0_3_4.timezoneapi = true;
-  }) [ libc_0_2_40_features redox_syscall_0_1_37_features winapi_0_3_4_features ];
-  toml_0_4_6 = { features?(toml_0_4_6_features {}) }: toml_0_4_6_ {
-    dependencies = mapFeatures features ([ serde_1_0_38 ]);
-  };
-  toml_0_4_6_features = f: updateFeatures f (rec {
-    serde_1_0_38.default = true;
-    toml_0_4_6.default = (f.toml_0_4_6.default or true);
-  }) [ serde_1_0_38_features ];
-  ucd_util_0_1_1 = { features?(ucd_util_0_1_1_features {}) }: ucd_util_0_1_1_ {};
-  ucd_util_0_1_1_features = f: updateFeatures f (rec {
-    ucd_util_0_1_1.default = (f.ucd_util_0_1_1.default or true);
-  }) [];
-  unicode_width_0_1_4 = { features?(unicode_width_0_1_4_features {}) }: unicode_width_0_1_4_ {
-    features = mkFeatures (features.unicode_width_0_1_4 or {});
-  };
-  unicode_width_0_1_4_features = f: updateFeatures f (rec {
-    unicode_width_0_1_4.default = (f.unicode_width_0_1_4.default or true);
-  }) [];
-  unicode_xid_0_1_0 = { features?(unicode_xid_0_1_0_features {}) }: unicode_xid_0_1_0_ {
-    features = mkFeatures (features.unicode_xid_0_1_0 or {});
-  };
-  unicode_xid_0_1_0_features = f: updateFeatures f (rec {
-    unicode_xid_0_1_0.default = (f.unicode_xid_0_1_0.default or true);
-  }) [];
-  unreachable_1_0_0 = { features?(unreachable_1_0_0_features {}) }: unreachable_1_0_0_ {
-    dependencies = mapFeatures features ([ void_1_0_2 ]);
-  };
-  unreachable_1_0_0_features = f: updateFeatures f (rec {
-    unreachable_1_0_0.default = (f.unreachable_1_0_0.default or true);
-    void_1_0_2.default = (f.void_1_0_2.default or false);
-  }) [ void_1_0_2_features ];
-  utf8_ranges_1_0_0 = { features?(utf8_ranges_1_0_0_features {}) }: utf8_ranges_1_0_0_ {};
-  utf8_ranges_1_0_0_features = f: updateFeatures f (rec {
-    utf8_ranges_1_0_0.default = (f.utf8_ranges_1_0_0.default or true);
-  }) [];
-  vcpkg_0_2_3 = { features?(vcpkg_0_2_3_features {}) }: vcpkg_0_2_3_ {};
-  vcpkg_0_2_3_features = f: updateFeatures f (rec {
-    vcpkg_0_2_3.default = (f.vcpkg_0_2_3.default or true);
-  }) [];
-  vec_map_0_8_0 = { features?(vec_map_0_8_0_features {}) }: vec_map_0_8_0_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.vec_map_0_8_0 or {});
-  };
-  vec_map_0_8_0_features = f: updateFeatures f (rec {
-    vec_map_0_8_0.default = (f.vec_map_0_8_0.default or true);
-    vec_map_0_8_0.serde =
-      (f.vec_map_0_8_0.serde or false) ||
-      (f.vec_map_0_8_0.eders or false) ||
-      (vec_map_0_8_0.eders or false);
-    vec_map_0_8_0.serde_derive =
-      (f.vec_map_0_8_0.serde_derive or false) ||
-      (f.vec_map_0_8_0.eders or false) ||
-      (vec_map_0_8_0.eders or false);
-  }) [];
-  void_1_0_2 = { features?(void_1_0_2_features {}) }: void_1_0_2_ {
-    features = mkFeatures (features.void_1_0_2 or {});
-  };
-  void_1_0_2_features = f: updateFeatures f (rec {
-    void_1_0_2.default = (f.void_1_0_2.default or true);
-    void_1_0_2.std =
-      (f.void_1_0_2.std or false) ||
-      (f.void_1_0_2.default or false) ||
-      (void_1_0_2.default or false);
-  }) [];
-  winapi_0_3_4 = { features?(winapi_0_3_4_features {}) }: winapi_0_3_4_ {
-    dependencies = (if kernel == "i686-pc-windows-gnu" then mapFeatures features ([ winapi_i686_pc_windows_gnu_0_4_0 ]) else [])
-      ++ (if kernel == "x86_64-pc-windows-gnu" then mapFeatures features ([ winapi_x86_64_pc_windows_gnu_0_4_0 ]) else []);
-    features = mkFeatures (features.winapi_0_3_4 or {});
-  };
-  winapi_0_3_4_features = f: updateFeatures f (rec {
-    winapi_0_3_4.default = (f.winapi_0_3_4.default or true);
-    winapi_i686_pc_windows_gnu_0_4_0.default = true;
-    winapi_x86_64_pc_windows_gnu_0_4_0.default = true;
-  }) [ winapi_i686_pc_windows_gnu_0_4_0_features winapi_x86_64_pc_windows_gnu_0_4_0_features ];
-  winapi_i686_pc_windows_gnu_0_4_0 = { features?(winapi_i686_pc_windows_gnu_0_4_0_features {}) }: winapi_i686_pc_windows_gnu_0_4_0_ {};
-  winapi_i686_pc_windows_gnu_0_4_0_features = f: updateFeatures f (rec {
-    winapi_i686_pc_windows_gnu_0_4_0.default = (f.winapi_i686_pc_windows_gnu_0_4_0.default or true);
-  }) [];
-  winapi_x86_64_pc_windows_gnu_0_4_0 = { features?(winapi_x86_64_pc_windows_gnu_0_4_0_features {}) }: winapi_x86_64_pc_windows_gnu_0_4_0_ {};
-  winapi_x86_64_pc_windows_gnu_0_4_0_features = f: updateFeatures f (rec {
-    winapi_x86_64_pc_windows_gnu_0_4_0.default = (f.winapi_x86_64_pc_windows_gnu_0_4_0.default or true);
-  }) [];
-  wincolor_0_1_6 = { features?(wincolor_0_1_6_features {}) }: wincolor_0_1_6_ {
-    dependencies = mapFeatures features ([ winapi_0_3_4 ]);
-  };
-  wincolor_0_1_6_features = f: updateFeatures f (rec {
-    winapi_0_3_4.consoleapi = true;
-    winapi_0_3_4.default = true;
-    winapi_0_3_4.minwindef = true;
-    winapi_0_3_4.processenv = true;
-    winapi_0_3_4.winbase = true;
-    winapi_0_3_4.wincon = true;
-    wincolor_0_1_6.default = (f.wincolor_0_1_6.default or true);
-  }) [ winapi_0_3_4_features ];
 }
diff --git a/pkgs/build-support/rust/crates-io.nix b/pkgs/build-support/rust/crates-io.nix
new file mode 100644
index 000000000000..9d9cafe4cbf2
--- /dev/null
+++ b/pkgs/build-support/rust/crates-io.nix
@@ -0,0 +1,2050 @@
+{ lib, buildRustCrate, buildRustCrateHelpers }:
+with buildRustCrateHelpers;
+let inherit (lib.lists) fold;
+    inherit (lib.attrsets) recursiveUpdate;
+in
+rec {
+
+  crates.aho_corasick."0.6.8" = deps: { features?(features_.aho_corasick."0.6.8" deps {}) }: buildRustCrate {
+    crateName = "aho-corasick";
+    version = "0.6.8";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "04bz5m32ykyn946iwxgbrl8nwca7ssxsqma140hgmkchaay80nfr";
+    libName = "aho_corasick";
+    crateBin =
+      [{  name = "aho-corasick-dot";  path = "src/main.rs"; }];
+    dependencies = mapFeatures features ([
+      (crates."memchr"."${deps."aho_corasick"."0.6.8"."memchr"}" deps)
+    ]);
+  };
+  features_.aho_corasick."0.6.8" = deps: f: updateFeatures f (rec {
+    aho_corasick."0.6.8".default = (f.aho_corasick."0.6.8".default or true);
+    memchr."${deps.aho_corasick."0.6.8".memchr}".default = true;
+  }) [
+    (features_.memchr."${deps."aho_corasick"."0.6.8"."memchr"}" deps)
+  ];
+
+
+  crates.ansi_term."0.11.0" = deps: { features?(features_.ansi_term."0.11.0" deps {}) }: buildRustCrate {
+    crateName = "ansi_term";
+    version = "0.11.0";
+    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" "Josh Triplett <josh@joshtriplett.org>" ];
+    sha256 = "08fk0p2xvkqpmz3zlrwnf6l8sj2vngw464rvzspzp31sbgxbwm4v";
+    dependencies = (if kernel == "windows" then mapFeatures features ([
+      (crates."winapi"."${deps."ansi_term"."0.11.0"."winapi"}" deps)
+    ]) else []);
+  };
+  features_.ansi_term."0.11.0" = deps: f: updateFeatures f (rec {
+    ansi_term."0.11.0".default = (f.ansi_term."0.11.0".default or true);
+    winapi = fold recursiveUpdate {} [
+      { "${deps.ansi_term."0.11.0".winapi}"."consoleapi" = true; }
+      { "${deps.ansi_term."0.11.0".winapi}"."errhandlingapi" = true; }
+      { "${deps.ansi_term."0.11.0".winapi}"."processenv" = true; }
+      { "${deps.ansi_term."0.11.0".winapi}".default = true; }
+    ];
+  }) [
+    (features_.winapi."${deps."ansi_term"."0.11.0"."winapi"}" deps)
+  ];
+
+
+  crates.argon2rs."0.2.5" = deps: { features?(features_.argon2rs."0.2.5" deps {}) }: buildRustCrate {
+    crateName = "argon2rs";
+    version = "0.2.5";
+    authors = [ "bryant <bryant@defrag.in>" ];
+    sha256 = "1byl9b3wwyrarn8qack21v5fi2qsnn3y5clvikk2apskhmnih1rw";
+    dependencies = mapFeatures features ([
+      (crates."blake2_rfc"."${deps."argon2rs"."0.2.5"."blake2_rfc"}" deps)
+      (crates."scoped_threadpool"."${deps."argon2rs"."0.2.5"."scoped_threadpool"}" deps)
+    ]);
+    features = mkFeatures (features."argon2rs"."0.2.5" or {});
+  };
+  features_.argon2rs."0.2.5" = deps: f: updateFeatures f (rec {
+    argon2rs."0.2.5".default = (f.argon2rs."0.2.5".default or true);
+    blake2_rfc = fold recursiveUpdate {} [
+      { "${deps.argon2rs."0.2.5".blake2_rfc}".default = true; }
+      { "0.2.18".simd_asm =
+        (f.blake2_rfc."0.2.18".simd_asm or false) ||
+        (argon2rs."0.2.5"."simd" or false) ||
+        (f."argon2rs"."0.2.5"."simd" or false); }
+    ];
+    scoped_threadpool."${deps.argon2rs."0.2.5".scoped_threadpool}".default = true;
+  }) [
+    (features_.blake2_rfc."${deps."argon2rs"."0.2.5"."blake2_rfc"}" deps)
+    (features_.scoped_threadpool."${deps."argon2rs"."0.2.5"."scoped_threadpool"}" deps)
+  ];
+
+
+  crates.arrayvec."0.4.7" = deps: { features?(features_.arrayvec."0.4.7" deps {}) }: buildRustCrate {
+    crateName = "arrayvec";
+    version = "0.4.7";
+    authors = [ "bluss" ];
+    sha256 = "0fzgv7z1x1qnyd7j32vdcadk4k9wfx897y06mr3bw1yi52iqf4z4";
+    dependencies = mapFeatures features ([
+      (crates."nodrop"."${deps."arrayvec"."0.4.7"."nodrop"}" deps)
+    ]);
+    features = mkFeatures (features."arrayvec"."0.4.7" or {});
+  };
+  features_.arrayvec."0.4.7" = deps: f: updateFeatures f (rec {
+    arrayvec = fold recursiveUpdate {} [
+      { "0.4.7".default = (f.arrayvec."0.4.7".default or true); }
+      { "0.4.7".serde =
+        (f.arrayvec."0.4.7".serde or false) ||
+        (f.arrayvec."0.4.7".serde-1 or false) ||
+        (arrayvec."0.4.7"."serde-1" or false); }
+      { "0.4.7".std =
+        (f.arrayvec."0.4.7".std or false) ||
+        (f.arrayvec."0.4.7".default or false) ||
+        (arrayvec."0.4.7"."default" or false); }
+    ];
+    nodrop."${deps.arrayvec."0.4.7".nodrop}".default = (f.nodrop."${deps.arrayvec."0.4.7".nodrop}".default or false);
+  }) [
+    (features_.nodrop."${deps."arrayvec"."0.4.7"."nodrop"}" deps)
+  ];
+
+
+  crates.atty."0.2.11" = deps: { features?(features_.atty."0.2.11" deps {}) }: buildRustCrate {
+    crateName = "atty";
+    version = "0.2.11";
+    authors = [ "softprops <d.tangren@gmail.com>" ];
+    sha256 = "0by1bj2km9jxi4i4g76zzi76fc2rcm9934jpnyrqd95zw344pb20";
+    dependencies = (if kernel == "redox" then mapFeatures features ([
+      (crates."termion"."${deps."atty"."0.2.11"."termion"}" deps)
+    ]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
+      (crates."libc"."${deps."atty"."0.2.11"."libc"}" deps)
+    ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([
+      (crates."winapi"."${deps."atty"."0.2.11"."winapi"}" deps)
+    ]) else []);
+  };
+  features_.atty."0.2.11" = deps: f: updateFeatures f (rec {
+    atty."0.2.11".default = (f.atty."0.2.11".default or true);
+    libc."${deps.atty."0.2.11".libc}".default = (f.libc."${deps.atty."0.2.11".libc}".default or false);
+    termion."${deps.atty."0.2.11".termion}".default = true;
+    winapi = fold recursiveUpdate {} [
+      { "${deps.atty."0.2.11".winapi}"."consoleapi" = true; }
+      { "${deps.atty."0.2.11".winapi}"."minwinbase" = true; }
+      { "${deps.atty."0.2.11".winapi}"."minwindef" = true; }
+      { "${deps.atty."0.2.11".winapi}"."processenv" = true; }
+      { "${deps.atty."0.2.11".winapi}"."winbase" = true; }
+      { "${deps.atty."0.2.11".winapi}".default = true; }
+    ];
+  }) [
+    (features_.termion."${deps."atty"."0.2.11"."termion"}" deps)
+    (features_.libc."${deps."atty"."0.2.11"."libc"}" deps)
+    (features_.winapi."${deps."atty"."0.2.11"."winapi"}" deps)
+  ];
+
+
+  crates.backtrace."0.3.9" = deps: { features?(features_.backtrace."0.3.9" deps {}) }: buildRustCrate {
+    crateName = "backtrace";
+    version = "0.3.9";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "The Rust Project Developers" ];
+    sha256 = "137pjkcn89b7fqk78w65ggj92pynmf1hkr1sjz53aga4b50lkmwm";
+    dependencies = mapFeatures features ([
+      (crates."cfg_if"."${deps."backtrace"."0.3.9"."cfg_if"}" deps)
+      (crates."rustc_demangle"."${deps."backtrace"."0.3.9"."rustc_demangle"}" deps)
+    ])
+      ++ (if (kernel == "linux" || kernel == "darwin") && !(kernel == "fuchsia") && !(kernel == "emscripten") && !(kernel == "darwin") && !(kernel == "ios") then mapFeatures features ([
+    ]
+      ++ (if features.backtrace."0.3.9".backtrace-sys or false then [ (crates.backtrace_sys."0.1.24" deps) ] else [])) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
+      (crates."libc"."${deps."backtrace"."0.3.9"."libc"}" deps)
+    ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([
+    ]
+      ++ (if features.backtrace."0.3.9".winapi or false then [ (crates.winapi."0.3.6" deps) ] else [])) else []);
+    features = mkFeatures (features."backtrace"."0.3.9" or {});
+  };
+  features_.backtrace."0.3.9" = deps: f: updateFeatures f (rec {
+    backtrace = fold recursiveUpdate {} [
+      { "0.3.9".addr2line =
+        (f.backtrace."0.3.9".addr2line or false) ||
+        (f.backtrace."0.3.9".gimli-symbolize or false) ||
+        (backtrace."0.3.9"."gimli-symbolize" or false); }
+      { "0.3.9".backtrace-sys =
+        (f.backtrace."0.3.9".backtrace-sys or false) ||
+        (f.backtrace."0.3.9".libbacktrace or false) ||
+        (backtrace."0.3.9"."libbacktrace" or false); }
+      { "0.3.9".coresymbolication =
+        (f.backtrace."0.3.9".coresymbolication or false) ||
+        (f.backtrace."0.3.9".default or false) ||
+        (backtrace."0.3.9"."default" or false); }
+      { "0.3.9".dbghelp =
+        (f.backtrace."0.3.9".dbghelp or false) ||
+        (f.backtrace."0.3.9".default or false) ||
+        (backtrace."0.3.9"."default" or false); }
+      { "0.3.9".default = (f.backtrace."0.3.9".default or true); }
+      { "0.3.9".dladdr =
+        (f.backtrace."0.3.9".dladdr or false) ||
+        (f.backtrace."0.3.9".default or false) ||
+        (backtrace."0.3.9"."default" or false); }
+      { "0.3.9".findshlibs =
+        (f.backtrace."0.3.9".findshlibs or false) ||
+        (f.backtrace."0.3.9".gimli-symbolize or false) ||
+        (backtrace."0.3.9"."gimli-symbolize" or false); }
+      { "0.3.9".gimli =
+        (f.backtrace."0.3.9".gimli or false) ||
+        (f.backtrace."0.3.9".gimli-symbolize or false) ||
+        (backtrace."0.3.9"."gimli-symbolize" or false); }
+      { "0.3.9".libbacktrace =
+        (f.backtrace."0.3.9".libbacktrace or false) ||
+        (f.backtrace."0.3.9".default or false) ||
+        (backtrace."0.3.9"."default" or false); }
+      { "0.3.9".libunwind =
+        (f.backtrace."0.3.9".libunwind or false) ||
+        (f.backtrace."0.3.9".default or false) ||
+        (backtrace."0.3.9"."default" or false); }
+      { "0.3.9".memmap =
+        (f.backtrace."0.3.9".memmap or false) ||
+        (f.backtrace."0.3.9".gimli-symbolize or false) ||
+        (backtrace."0.3.9"."gimli-symbolize" or false); }
+      { "0.3.9".object =
+        (f.backtrace."0.3.9".object or false) ||
+        (f.backtrace."0.3.9".gimli-symbolize or false) ||
+        (backtrace."0.3.9"."gimli-symbolize" or false); }
+      { "0.3.9".rustc-serialize =
+        (f.backtrace."0.3.9".rustc-serialize or false) ||
+        (f.backtrace."0.3.9".serialize-rustc or false) ||
+        (backtrace."0.3.9"."serialize-rustc" or false); }
+      { "0.3.9".serde =
+        (f.backtrace."0.3.9".serde or false) ||
+        (f.backtrace."0.3.9".serialize-serde or false) ||
+        (backtrace."0.3.9"."serialize-serde" or false); }
+      { "0.3.9".serde_derive =
+        (f.backtrace."0.3.9".serde_derive or false) ||
+        (f.backtrace."0.3.9".serialize-serde or false) ||
+        (backtrace."0.3.9"."serialize-serde" or false); }
+      { "0.3.9".winapi =
+        (f.backtrace."0.3.9".winapi or false) ||
+        (f.backtrace."0.3.9".dbghelp or false) ||
+        (backtrace."0.3.9"."dbghelp" or false); }
+    ];
+    backtrace_sys."${deps.backtrace."0.3.9".backtrace_sys}".default = true;
+    cfg_if."${deps.backtrace."0.3.9".cfg_if}".default = true;
+    libc."${deps.backtrace."0.3.9".libc}".default = true;
+    rustc_demangle."${deps.backtrace."0.3.9".rustc_demangle}".default = true;
+    winapi = fold recursiveUpdate {} [
+      { "${deps.backtrace."0.3.9".winapi}"."dbghelp" = true; }
+      { "${deps.backtrace."0.3.9".winapi}"."minwindef" = true; }
+      { "${deps.backtrace."0.3.9".winapi}"."processthreadsapi" = true; }
+      { "${deps.backtrace."0.3.9".winapi}"."std" = true; }
+      { "${deps.backtrace."0.3.9".winapi}"."winnt" = true; }
+      { "${deps.backtrace."0.3.9".winapi}".default = true; }
+    ];
+  }) [
+    (features_.cfg_if."${deps."backtrace"."0.3.9"."cfg_if"}" deps)
+    (features_.rustc_demangle."${deps."backtrace"."0.3.9"."rustc_demangle"}" deps)
+    (features_.backtrace_sys."${deps."backtrace"."0.3.9"."backtrace_sys"}" deps)
+    (features_.libc."${deps."backtrace"."0.3.9"."libc"}" deps)
+    (features_.winapi."${deps."backtrace"."0.3.9"."winapi"}" deps)
+  ];
+
+
+  crates.backtrace_sys."0.1.24" = deps: { features?(features_.backtrace_sys."0.1.24" deps {}) }: buildRustCrate {
+    crateName = "backtrace-sys";
+    version = "0.1.24";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "15d6jlknykiijcin3vqbx33760w24ss5qw3l1xd3hms5k4vc8305";
+    build = "build.rs";
+    dependencies = mapFeatures features ([
+      (crates."libc"."${deps."backtrace_sys"."0.1.24"."libc"}" deps)
+    ]);
+
+    buildDependencies = mapFeatures features ([
+      (crates."cc"."${deps."backtrace_sys"."0.1.24"."cc"}" deps)
+    ]);
+  };
+  features_.backtrace_sys."0.1.24" = deps: f: updateFeatures f (rec {
+    backtrace_sys."0.1.24".default = (f.backtrace_sys."0.1.24".default or true);
+    cc."${deps.backtrace_sys."0.1.24".cc}".default = true;
+    libc."${deps.backtrace_sys."0.1.24".libc}".default = true;
+  }) [
+    (features_.libc."${deps."backtrace_sys"."0.1.24"."libc"}" deps)
+    (features_.cc."${deps."backtrace_sys"."0.1.24"."cc"}" deps)
+  ];
+
+
+  crates.bitflags."1.0.4" = deps: { features?(features_.bitflags."1.0.4" deps {}) }: buildRustCrate {
+    crateName = "bitflags";
+    version = "1.0.4";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1g1wmz2001qmfrd37dnd5qiss5njrw26aywmg6yhkmkbyrhjxb08";
+    features = mkFeatures (features."bitflags"."1.0.4" or {});
+  };
+  features_.bitflags."1.0.4" = deps: f: updateFeatures f (rec {
+    bitflags."1.0.4".default = (f.bitflags."1.0.4".default or true);
+  }) [];
+
+
+  crates.blake2_rfc."0.2.18" = deps: { features?(features_.blake2_rfc."0.2.18" deps {}) }: buildRustCrate {
+    crateName = "blake2-rfc";
+    version = "0.2.18";
+    authors = [ "Cesar Eduardo Barros <cesarb@cesarb.eti.br>" ];
+    sha256 = "0pyqrik4471ljk16prs0iwb2sam39z0z6axyyjxlqxdmf4wprf0l";
+    dependencies = mapFeatures features ([
+      (crates."arrayvec"."${deps."blake2_rfc"."0.2.18"."arrayvec"}" deps)
+      (crates."constant_time_eq"."${deps."blake2_rfc"."0.2.18"."constant_time_eq"}" deps)
+    ]);
+    features = mkFeatures (features."blake2_rfc"."0.2.18" or {});
+  };
+  features_.blake2_rfc."0.2.18" = deps: f: updateFeatures f (rec {
+    arrayvec."${deps.blake2_rfc."0.2.18".arrayvec}".default = (f.arrayvec."${deps.blake2_rfc."0.2.18".arrayvec}".default or false);
+    blake2_rfc = fold recursiveUpdate {} [
+      { "0.2.18".default = (f.blake2_rfc."0.2.18".default or true); }
+      { "0.2.18".simd =
+        (f.blake2_rfc."0.2.18".simd or false) ||
+        (f.blake2_rfc."0.2.18".simd_opt or false) ||
+        (blake2_rfc."0.2.18"."simd_opt" or false); }
+      { "0.2.18".simd_opt =
+        (f.blake2_rfc."0.2.18".simd_opt or false) ||
+        (f.blake2_rfc."0.2.18".simd_asm or false) ||
+        (blake2_rfc."0.2.18"."simd_asm" or false); }
+      { "0.2.18".std =
+        (f.blake2_rfc."0.2.18".std or false) ||
+        (f.blake2_rfc."0.2.18".default or false) ||
+        (blake2_rfc."0.2.18"."default" or false); }
+    ];
+    constant_time_eq."${deps.blake2_rfc."0.2.18".constant_time_eq}".default = true;
+  }) [
+    (features_.arrayvec."${deps."blake2_rfc"."0.2.18"."arrayvec"}" deps)
+    (features_.constant_time_eq."${deps."blake2_rfc"."0.2.18"."constant_time_eq"}" deps)
+  ];
+
+
+  crates.carnix."0.8.11" = deps: { features?(features_.carnix."0.8.11" deps {}) }: buildRustCrate {
+    crateName = "carnix";
+    version = "0.8.11";
+    authors = [ "pe@pijul.org <pe@pijul.org>" ];
+    sha256 = "1i5iz51mradd3vishc19cd0nfh9r2clbmiq94f83npny65dnp6ch";
+    crateBin =
+      [{  name = "cargo-generate-nixfile";  path = "src/cargo-generate-nixfile.rs"; }] ++
+      [{  name = "carnix";  path = "src/main.rs"; }];
+    dependencies = mapFeatures features ([
+      (crates."clap"."${deps."carnix"."0.8.11"."clap"}" deps)
+      (crates."dirs"."${deps."carnix"."0.8.11"."dirs"}" deps)
+      (crates."env_logger"."${deps."carnix"."0.8.11"."env_logger"}" deps)
+      (crates."error_chain"."${deps."carnix"."0.8.11"."error_chain"}" deps)
+      (crates."itertools"."${deps."carnix"."0.8.11"."itertools"}" deps)
+      (crates."log"."${deps."carnix"."0.8.11"."log"}" deps)
+      (crates."nom"."${deps."carnix"."0.8.11"."nom"}" deps)
+      (crates."regex"."${deps."carnix"."0.8.11"."regex"}" deps)
+      (crates."rusqlite"."${deps."carnix"."0.8.11"."rusqlite"}" deps)
+      (crates."serde"."${deps."carnix"."0.8.11"."serde"}" deps)
+      (crates."serde_derive"."${deps."carnix"."0.8.11"."serde_derive"}" deps)
+      (crates."serde_json"."${deps."carnix"."0.8.11"."serde_json"}" deps)
+      (crates."tempdir"."${deps."carnix"."0.8.11"."tempdir"}" deps)
+      (crates."toml"."${deps."carnix"."0.8.11"."toml"}" deps)
+    ]);
+  };
+  features_.carnix."0.8.11" = deps: f: updateFeatures f (rec {
+    carnix."0.8.11".default = (f.carnix."0.8.11".default or true);
+    clap."${deps.carnix."0.8.11".clap}".default = true;
+    dirs."${deps.carnix."0.8.11".dirs}".default = true;
+    env_logger."${deps.carnix."0.8.11".env_logger}".default = true;
+    error_chain."${deps.carnix."0.8.11".error_chain}".default = true;
+    itertools."${deps.carnix."0.8.11".itertools}".default = true;
+    log."${deps.carnix."0.8.11".log}".default = true;
+    nom."${deps.carnix."0.8.11".nom}".default = true;
+    regex."${deps.carnix."0.8.11".regex}".default = true;
+    rusqlite."${deps.carnix."0.8.11".rusqlite}".default = true;
+    serde."${deps.carnix."0.8.11".serde}".default = true;
+    serde_derive."${deps.carnix."0.8.11".serde_derive}".default = true;
+    serde_json."${deps.carnix."0.8.11".serde_json}".default = true;
+    tempdir."${deps.carnix."0.8.11".tempdir}".default = true;
+    toml."${deps.carnix."0.8.11".toml}".default = true;
+  }) [
+    (features_.clap."${deps."carnix"."0.8.11"."clap"}" deps)
+    (features_.dirs."${deps."carnix"."0.8.11"."dirs"}" deps)
+    (features_.env_logger."${deps."carnix"."0.8.11"."env_logger"}" deps)
+    (features_.error_chain."${deps."carnix"."0.8.11"."error_chain"}" deps)
+    (features_.itertools."${deps."carnix"."0.8.11"."itertools"}" deps)
+    (features_.log."${deps."carnix"."0.8.11"."log"}" deps)
+    (features_.nom."${deps."carnix"."0.8.11"."nom"}" deps)
+    (features_.regex."${deps."carnix"."0.8.11"."regex"}" deps)
+    (features_.rusqlite."${deps."carnix"."0.8.11"."rusqlite"}" deps)
+    (features_.serde."${deps."carnix"."0.8.11"."serde"}" deps)
+    (features_.serde_derive."${deps."carnix"."0.8.11"."serde_derive"}" deps)
+    (features_.serde_json."${deps."carnix"."0.8.11"."serde_json"}" deps)
+    (features_.tempdir."${deps."carnix"."0.8.11"."tempdir"}" deps)
+    (features_.toml."${deps."carnix"."0.8.11"."toml"}" deps)
+  ];
+
+
+  crates.cc."1.0.25" = deps: { features?(features_.cc."1.0.25" deps {}) }: buildRustCrate {
+    crateName = "cc";
+    version = "1.0.25";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0pd8fhjlpr5qan984frkf1c8nxrqp6827wmmfzhm2840229z2hq0";
+    dependencies = mapFeatures features ([
+]);
+    features = mkFeatures (features."cc"."1.0.25" or {});
+  };
+  features_.cc."1.0.25" = deps: f: updateFeatures f (rec {
+    cc = fold recursiveUpdate {} [
+      { "1.0.25".default = (f.cc."1.0.25".default or true); }
+      { "1.0.25".rayon =
+        (f.cc."1.0.25".rayon or false) ||
+        (f.cc."1.0.25".parallel or false) ||
+        (cc."1.0.25"."parallel" or false); }
+    ];
+  }) [];
+
+
+  crates.cfg_if."0.1.6" = deps: { features?(features_.cfg_if."0.1.6" deps {}) }: buildRustCrate {
+    crateName = "cfg-if";
+    version = "0.1.6";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "11qrix06wagkplyk908i3423ps9m9np6c4vbcq81s9fyl244xv3n";
+  };
+  features_.cfg_if."0.1.6" = deps: f: updateFeatures f (rec {
+    cfg_if."0.1.6".default = (f.cfg_if."0.1.6".default or true);
+  }) [];
+
+
+  crates.clap."2.32.0" = deps: { features?(features_.clap."2.32.0" deps {}) }: buildRustCrate {
+    crateName = "clap";
+    version = "2.32.0";
+    authors = [ "Kevin K. <kbknapp@gmail.com>" ];
+    sha256 = "1hdjf0janvpjkwrjdjx1mm2aayzr54k72w6mriyr0n5anjkcj1lx";
+    dependencies = mapFeatures features ([
+      (crates."bitflags"."${deps."clap"."2.32.0"."bitflags"}" deps)
+      (crates."textwrap"."${deps."clap"."2.32.0"."textwrap"}" deps)
+      (crates."unicode_width"."${deps."clap"."2.32.0"."unicode_width"}" deps)
+    ]
+      ++ (if features.clap."2.32.0".atty or false then [ (crates.atty."0.2.11" deps) ] else [])
+      ++ (if features.clap."2.32.0".strsim or false then [ (crates.strsim."0.7.0" deps) ] else [])
+      ++ (if features.clap."2.32.0".vec_map or false then [ (crates.vec_map."0.8.1" deps) ] else []))
+      ++ (if !(kernel == "windows") then mapFeatures features ([
+    ]
+      ++ (if features.clap."2.32.0".ansi_term or false then [ (crates.ansi_term."0.11.0" deps) ] else [])) else []);
+    features = mkFeatures (features."clap"."2.32.0" or {});
+  };
+  features_.clap."2.32.0" = deps: f: updateFeatures f (rec {
+    ansi_term."${deps.clap."2.32.0".ansi_term}".default = true;
+    atty."${deps.clap."2.32.0".atty}".default = true;
+    bitflags."${deps.clap."2.32.0".bitflags}".default = true;
+    clap = fold recursiveUpdate {} [
+      { "2.32.0".ansi_term =
+        (f.clap."2.32.0".ansi_term or false) ||
+        (f.clap."2.32.0".color or false) ||
+        (clap."2.32.0"."color" or false); }
+      { "2.32.0".atty =
+        (f.clap."2.32.0".atty or false) ||
+        (f.clap."2.32.0".color or false) ||
+        (clap."2.32.0"."color" or false); }
+      { "2.32.0".clippy =
+        (f.clap."2.32.0".clippy or false) ||
+        (f.clap."2.32.0".lints or false) ||
+        (clap."2.32.0"."lints" or false); }
+      { "2.32.0".color =
+        (f.clap."2.32.0".color or false) ||
+        (f.clap."2.32.0".default or false) ||
+        (clap."2.32.0"."default" or false); }
+      { "2.32.0".default = (f.clap."2.32.0".default or true); }
+      { "2.32.0".strsim =
+        (f.clap."2.32.0".strsim or false) ||
+        (f.clap."2.32.0".suggestions or false) ||
+        (clap."2.32.0"."suggestions" or false); }
+      { "2.32.0".suggestions =
+        (f.clap."2.32.0".suggestions or false) ||
+        (f.clap."2.32.0".default or false) ||
+        (clap."2.32.0"."default" or false); }
+      { "2.32.0".term_size =
+        (f.clap."2.32.0".term_size or false) ||
+        (f.clap."2.32.0".wrap_help or false) ||
+        (clap."2.32.0"."wrap_help" or false); }
+      { "2.32.0".vec_map =
+        (f.clap."2.32.0".vec_map or false) ||
+        (f.clap."2.32.0".default or false) ||
+        (clap."2.32.0"."default" or false); }
+      { "2.32.0".yaml =
+        (f.clap."2.32.0".yaml or false) ||
+        (f.clap."2.32.0".doc or false) ||
+        (clap."2.32.0"."doc" or false); }
+      { "2.32.0".yaml-rust =
+        (f.clap."2.32.0".yaml-rust or false) ||
+        (f.clap."2.32.0".yaml or false) ||
+        (clap."2.32.0"."yaml" or false); }
+    ];
+    strsim."${deps.clap."2.32.0".strsim}".default = true;
+    textwrap = fold recursiveUpdate {} [
+      { "${deps.clap."2.32.0".textwrap}".default = true; }
+      { "0.10.0".term_size =
+        (f.textwrap."0.10.0".term_size or false) ||
+        (clap."2.32.0"."wrap_help" or false) ||
+        (f."clap"."2.32.0"."wrap_help" or false); }
+    ];
+    unicode_width."${deps.clap."2.32.0".unicode_width}".default = true;
+    vec_map."${deps.clap."2.32.0".vec_map}".default = true;
+  }) [
+    (features_.atty."${deps."clap"."2.32.0"."atty"}" deps)
+    (features_.bitflags."${deps."clap"."2.32.0"."bitflags"}" deps)
+    (features_.strsim."${deps."clap"."2.32.0"."strsim"}" deps)
+    (features_.textwrap."${deps."clap"."2.32.0"."textwrap"}" deps)
+    (features_.unicode_width."${deps."clap"."2.32.0"."unicode_width"}" deps)
+    (features_.vec_map."${deps."clap"."2.32.0"."vec_map"}" deps)
+    (features_.ansi_term."${deps."clap"."2.32.0"."ansi_term"}" deps)
+  ];
+
+
+  crates.constant_time_eq."0.1.3" = deps: { features?(features_.constant_time_eq."0.1.3" deps {}) }: buildRustCrate {
+    crateName = "constant_time_eq";
+    version = "0.1.3";
+    authors = [ "Cesar Eduardo Barros <cesarb@cesarb.eti.br>" ];
+    sha256 = "03qri9hjf049gwqg9q527lybpg918q6y5q4g9a5lma753nff49wd";
+  };
+  features_.constant_time_eq."0.1.3" = deps: f: updateFeatures f (rec {
+    constant_time_eq."0.1.3".default = (f.constant_time_eq."0.1.3".default or true);
+  }) [];
+
+
+  crates.dirs."1.0.4" = deps: { features?(features_.dirs."1.0.4" deps {}) }: buildRustCrate {
+    crateName = "dirs";
+    version = "1.0.4";
+    authors = [ "Simon Ochsenreither <simon@ochsenreither.de>" ];
+    sha256 = "1hp3nz0350b0gpavb3w5ajqc9l1k59cfrcsr3hcavwlkizdnpv1y";
+    dependencies = (if kernel == "redox" then mapFeatures features ([
+      (crates."redox_users"."${deps."dirs"."1.0.4"."redox_users"}" deps)
+    ]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
+      (crates."libc"."${deps."dirs"."1.0.4"."libc"}" deps)
+    ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([
+      (crates."winapi"."${deps."dirs"."1.0.4"."winapi"}" deps)
+    ]) else []);
+  };
+  features_.dirs."1.0.4" = deps: f: updateFeatures f (rec {
+    dirs."1.0.4".default = (f.dirs."1.0.4".default or true);
+    libc."${deps.dirs."1.0.4".libc}".default = true;
+    redox_users."${deps.dirs."1.0.4".redox_users}".default = true;
+    winapi = fold recursiveUpdate {} [
+      { "${deps.dirs."1.0.4".winapi}"."knownfolders" = true; }
+      { "${deps.dirs."1.0.4".winapi}"."objbase" = true; }
+      { "${deps.dirs."1.0.4".winapi}"."shlobj" = true; }
+      { "${deps.dirs."1.0.4".winapi}"."winbase" = true; }
+      { "${deps.dirs."1.0.4".winapi}"."winerror" = true; }
+      { "${deps.dirs."1.0.4".winapi}".default = true; }
+    ];
+  }) [
+    (features_.redox_users."${deps."dirs"."1.0.4"."redox_users"}" deps)
+    (features_.libc."${deps."dirs"."1.0.4"."libc"}" deps)
+    (features_.winapi."${deps."dirs"."1.0.4"."winapi"}" deps)
+  ];
+
+
+  crates.either."1.5.0" = deps: { features?(features_.either."1.5.0" deps {}) }: buildRustCrate {
+    crateName = "either";
+    version = "1.5.0";
+    authors = [ "bluss" ];
+    sha256 = "1f7kl2ln01y02m8fpd2zrdjiwqmgfvl9nxxrfry3k19d1gd2bsvz";
+    dependencies = mapFeatures features ([
+]);
+    features = mkFeatures (features."either"."1.5.0" or {});
+  };
+  features_.either."1.5.0" = deps: f: updateFeatures f (rec {
+    either = fold recursiveUpdate {} [
+      { "1.5.0".default = (f.either."1.5.0".default or true); }
+      { "1.5.0".use_std =
+        (f.either."1.5.0".use_std or false) ||
+        (f.either."1.5.0".default or false) ||
+        (either."1.5.0"."default" or false); }
+    ];
+  }) [];
+
+
+  crates.env_logger."0.5.13" = deps: { features?(features_.env_logger."0.5.13" deps {}) }: buildRustCrate {
+    crateName = "env_logger";
+    version = "0.5.13";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1q6vylngcz4bn088b4hvsl879l8yz1k2bma75waljb5p4h4kbb72";
+    dependencies = mapFeatures features ([
+      (crates."atty"."${deps."env_logger"."0.5.13"."atty"}" deps)
+      (crates."humantime"."${deps."env_logger"."0.5.13"."humantime"}" deps)
+      (crates."log"."${deps."env_logger"."0.5.13"."log"}" deps)
+      (crates."termcolor"."${deps."env_logger"."0.5.13"."termcolor"}" deps)
+    ]
+      ++ (if features.env_logger."0.5.13".regex or false then [ (crates.regex."1.0.5" deps) ] else []));
+    features = mkFeatures (features."env_logger"."0.5.13" or {});
+  };
+  features_.env_logger."0.5.13" = deps: f: updateFeatures f (rec {
+    atty."${deps.env_logger."0.5.13".atty}".default = true;
+    env_logger = fold recursiveUpdate {} [
+      { "0.5.13".default = (f.env_logger."0.5.13".default or true); }
+      { "0.5.13".regex =
+        (f.env_logger."0.5.13".regex or false) ||
+        (f.env_logger."0.5.13".default or false) ||
+        (env_logger."0.5.13"."default" or false); }
+    ];
+    humantime."${deps.env_logger."0.5.13".humantime}".default = true;
+    log = fold recursiveUpdate {} [
+      { "${deps.env_logger."0.5.13".log}"."std" = true; }
+      { "${deps.env_logger."0.5.13".log}".default = true; }
+    ];
+    regex."${deps.env_logger."0.5.13".regex}".default = true;
+    termcolor."${deps.env_logger."0.5.13".termcolor}".default = true;
+  }) [
+    (features_.atty."${deps."env_logger"."0.5.13"."atty"}" deps)
+    (features_.humantime."${deps."env_logger"."0.5.13"."humantime"}" deps)
+    (features_.log."${deps."env_logger"."0.5.13"."log"}" deps)
+    (features_.regex."${deps."env_logger"."0.5.13"."regex"}" deps)
+    (features_.termcolor."${deps."env_logger"."0.5.13"."termcolor"}" deps)
+  ];
+
+
+  crates.error_chain."0.12.0" = deps: { features?(features_.error_chain."0.12.0" deps {}) }: buildRustCrate {
+    crateName = "error-chain";
+    version = "0.12.0";
+    authors = [ "Brian Anderson <banderson@mozilla.com>" "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" "Yamakaky <yamakaky@yamaworld.fr>" ];
+    sha256 = "1m6wk1r6wqg1mn69bxxvk5k081cb4xy6bfhsxb99rv408x9wjcnl";
+    dependencies = mapFeatures features ([
+    ]
+      ++ (if features.error_chain."0.12.0".backtrace or false then [ (crates.backtrace."0.3.9" deps) ] else []));
+    features = mkFeatures (features."error_chain"."0.12.0" or {});
+  };
+  features_.error_chain."0.12.0" = deps: f: updateFeatures f (rec {
+    backtrace."${deps.error_chain."0.12.0".backtrace}".default = true;
+    error_chain = fold recursiveUpdate {} [
+      { "0.12.0".backtrace =
+        (f.error_chain."0.12.0".backtrace or false) ||
+        (f.error_chain."0.12.0".default or false) ||
+        (error_chain."0.12.0"."default" or false); }
+      { "0.12.0".default = (f.error_chain."0.12.0".default or true); }
+      { "0.12.0".example_generated =
+        (f.error_chain."0.12.0".example_generated or false) ||
+        (f.error_chain."0.12.0".default or false) ||
+        (error_chain."0.12.0"."default" or false); }
+    ];
+  }) [
+    (features_.backtrace."${deps."error_chain"."0.12.0"."backtrace"}" deps)
+  ];
+
+
+  crates.failure."0.1.3" = deps: { features?(features_.failure."0.1.3" deps {}) }: buildRustCrate {
+    crateName = "failure";
+    version = "0.1.3";
+    authors = [ "Without Boats <boats@mozilla.com>" ];
+    sha256 = "0cibp01z0clyxrvkl7v7kq6jszsgcg9vwv6d9l6d1drk9jqdss4s";
+    dependencies = mapFeatures features ([
+    ]
+      ++ (if features.failure."0.1.3".backtrace or false then [ (crates.backtrace."0.3.9" deps) ] else [])
+      ++ (if features.failure."0.1.3".failure_derive or false then [ (crates.failure_derive."0.1.3" deps) ] else []));
+    features = mkFeatures (features."failure"."0.1.3" or {});
+  };
+  features_.failure."0.1.3" = deps: f: updateFeatures f (rec {
+    backtrace."${deps.failure."0.1.3".backtrace}".default = true;
+    failure = fold recursiveUpdate {} [
+      { "0.1.3".backtrace =
+        (f.failure."0.1.3".backtrace or false) ||
+        (f.failure."0.1.3".std or false) ||
+        (failure."0.1.3"."std" or false); }
+      { "0.1.3".default = (f.failure."0.1.3".default or true); }
+      { "0.1.3".derive =
+        (f.failure."0.1.3".derive or false) ||
+        (f.failure."0.1.3".default or false) ||
+        (failure."0.1.3"."default" or false); }
+      { "0.1.3".failure_derive =
+        (f.failure."0.1.3".failure_derive or false) ||
+        (f.failure."0.1.3".derive or false) ||
+        (failure."0.1.3"."derive" or false); }
+      { "0.1.3".std =
+        (f.failure."0.1.3".std or false) ||
+        (f.failure."0.1.3".default or false) ||
+        (failure."0.1.3"."default" or false); }
+    ];
+    failure_derive."${deps.failure."0.1.3".failure_derive}".default = true;
+  }) [
+    (features_.backtrace."${deps."failure"."0.1.3"."backtrace"}" deps)
+    (features_.failure_derive."${deps."failure"."0.1.3"."failure_derive"}" deps)
+  ];
+
+
+  crates.failure_derive."0.1.3" = deps: { features?(features_.failure_derive."0.1.3" deps {}) }: buildRustCrate {
+    crateName = "failure_derive";
+    version = "0.1.3";
+    authors = [ "Without Boats <woboats@gmail.com>" ];
+    sha256 = "1mh7ad2d17f13g0k29bskp0f9faws0w1q4a5yfzlzi75bw9kidgm";
+    procMacro = true;
+    build = "build.rs";
+    dependencies = mapFeatures features ([
+      (crates."proc_macro2"."${deps."failure_derive"."0.1.3"."proc_macro2"}" deps)
+      (crates."quote"."${deps."failure_derive"."0.1.3"."quote"}" deps)
+      (crates."syn"."${deps."failure_derive"."0.1.3"."syn"}" deps)
+      (crates."synstructure"."${deps."failure_derive"."0.1.3"."synstructure"}" deps)
+    ]);
+    features = mkFeatures (features."failure_derive"."0.1.3" or {});
+  };
+  features_.failure_derive."0.1.3" = deps: f: updateFeatures f (rec {
+    failure_derive."0.1.3".default = (f.failure_derive."0.1.3".default or true);
+    proc_macro2."${deps.failure_derive."0.1.3".proc_macro2}".default = true;
+    quote."${deps.failure_derive."0.1.3".quote}".default = true;
+    syn."${deps.failure_derive."0.1.3".syn}".default = true;
+    synstructure."${deps.failure_derive."0.1.3".synstructure}".default = true;
+  }) [
+    (features_.proc_macro2."${deps."failure_derive"."0.1.3"."proc_macro2"}" deps)
+    (features_.quote."${deps."failure_derive"."0.1.3"."quote"}" deps)
+    (features_.syn."${deps."failure_derive"."0.1.3"."syn"}" deps)
+    (features_.synstructure."${deps."failure_derive"."0.1.3"."synstructure"}" deps)
+  ];
+
+
+  crates.fuchsia_zircon."0.3.3" = deps: { features?(features_.fuchsia_zircon."0.3.3" deps {}) }: buildRustCrate {
+    crateName = "fuchsia-zircon";
+    version = "0.3.3";
+    authors = [ "Raph Levien <raph@google.com>" ];
+    sha256 = "0jrf4shb1699r4la8z358vri8318w4mdi6qzfqy30p2ymjlca4gk";
+    dependencies = mapFeatures features ([
+      (crates."bitflags"."${deps."fuchsia_zircon"."0.3.3"."bitflags"}" deps)
+      (crates."fuchsia_zircon_sys"."${deps."fuchsia_zircon"."0.3.3"."fuchsia_zircon_sys"}" deps)
+    ]);
+  };
+  features_.fuchsia_zircon."0.3.3" = deps: f: updateFeatures f (rec {
+    bitflags."${deps.fuchsia_zircon."0.3.3".bitflags}".default = true;
+    fuchsia_zircon."0.3.3".default = (f.fuchsia_zircon."0.3.3".default or true);
+    fuchsia_zircon_sys."${deps.fuchsia_zircon."0.3.3".fuchsia_zircon_sys}".default = true;
+  }) [
+    (features_.bitflags."${deps."fuchsia_zircon"."0.3.3"."bitflags"}" deps)
+    (features_.fuchsia_zircon_sys."${deps."fuchsia_zircon"."0.3.3"."fuchsia_zircon_sys"}" deps)
+  ];
+
+
+  crates.fuchsia_zircon_sys."0.3.3" = deps: { features?(features_.fuchsia_zircon_sys."0.3.3" deps {}) }: buildRustCrate {
+    crateName = "fuchsia-zircon-sys";
+    version = "0.3.3";
+    authors = [ "Raph Levien <raph@google.com>" ];
+    sha256 = "08jp1zxrm9jbrr6l26bjal4dbm8bxfy57ickdgibsqxr1n9j3hf5";
+  };
+  features_.fuchsia_zircon_sys."0.3.3" = deps: f: updateFeatures f (rec {
+    fuchsia_zircon_sys."0.3.3".default = (f.fuchsia_zircon_sys."0.3.3".default or true);
+  }) [];
+
+
+  crates.humantime."1.1.1" = deps: { features?(features_.humantime."1.1.1" deps {}) }: buildRustCrate {
+    crateName = "humantime";
+    version = "1.1.1";
+    authors = [ "Paul Colomiets <paul@colomiets.name>" ];
+    sha256 = "1lzdfsfzdikcp1qb6wcdvnsdv16pmzr7p7cv171vnbnyz2lrwbgn";
+    libPath = "src/lib.rs";
+    dependencies = mapFeatures features ([
+      (crates."quick_error"."${deps."humantime"."1.1.1"."quick_error"}" deps)
+    ]);
+  };
+  features_.humantime."1.1.1" = deps: f: updateFeatures f (rec {
+    humantime."1.1.1".default = (f.humantime."1.1.1".default or true);
+    quick_error."${deps.humantime."1.1.1".quick_error}".default = true;
+  }) [
+    (features_.quick_error."${deps."humantime"."1.1.1"."quick_error"}" deps)
+  ];
+
+
+  crates.itertools."0.7.8" = deps: { features?(features_.itertools."0.7.8" deps {}) }: buildRustCrate {
+    crateName = "itertools";
+    version = "0.7.8";
+    authors = [ "bluss" ];
+    sha256 = "0ib30cd7d1icjxsa13mji1gry3grp72kx8p33yd84mphdbc3d357";
+    dependencies = mapFeatures features ([
+      (crates."either"."${deps."itertools"."0.7.8"."either"}" deps)
+    ]);
+    features = mkFeatures (features."itertools"."0.7.8" or {});
+  };
+  features_.itertools."0.7.8" = deps: f: updateFeatures f (rec {
+    either."${deps.itertools."0.7.8".either}".default = (f.either."${deps.itertools."0.7.8".either}".default or false);
+    itertools = fold recursiveUpdate {} [
+      { "0.7.8".default = (f.itertools."0.7.8".default or true); }
+      { "0.7.8".use_std =
+        (f.itertools."0.7.8".use_std or false) ||
+        (f.itertools."0.7.8".default or false) ||
+        (itertools."0.7.8"."default" or false); }
+    ];
+  }) [
+    (features_.either."${deps."itertools"."0.7.8"."either"}" deps)
+  ];
+
+
+  crates.itoa."0.4.3" = deps: { features?(features_.itoa."0.4.3" deps {}) }: buildRustCrate {
+    crateName = "itoa";
+    version = "0.4.3";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "0zadimmdgvili3gdwxqg7ljv3r4wcdg1kkdfp9nl15vnm23vrhy1";
+    features = mkFeatures (features."itoa"."0.4.3" or {});
+  };
+  features_.itoa."0.4.3" = deps: f: updateFeatures f (rec {
+    itoa = fold recursiveUpdate {} [
+      { "0.4.3".default = (f.itoa."0.4.3".default or true); }
+      { "0.4.3".std =
+        (f.itoa."0.4.3".std or false) ||
+        (f.itoa."0.4.3".default or false) ||
+        (itoa."0.4.3"."default" or false); }
+    ];
+  }) [];
+
+
+  crates.lazy_static."1.1.0" = deps: { features?(features_.lazy_static."1.1.0" deps {}) }: buildRustCrate {
+    crateName = "lazy_static";
+    version = "1.1.0";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "1da2b6nxfc2l547qgl9kd1pn9sh1af96a6qx6xw8xdnv6hh5fag0";
+    build = "build.rs";
+    dependencies = mapFeatures features ([
+]);
+
+    buildDependencies = mapFeatures features ([
+      (crates."version_check"."${deps."lazy_static"."1.1.0"."version_check"}" deps)
+    ]);
+    features = mkFeatures (features."lazy_static"."1.1.0" or {});
+  };
+  features_.lazy_static."1.1.0" = deps: f: updateFeatures f (rec {
+    lazy_static = fold recursiveUpdate {} [
+      { "1.1.0".default = (f.lazy_static."1.1.0".default or true); }
+      { "1.1.0".nightly =
+        (f.lazy_static."1.1.0".nightly or false) ||
+        (f.lazy_static."1.1.0".spin_no_std or false) ||
+        (lazy_static."1.1.0"."spin_no_std" or false); }
+      { "1.1.0".spin =
+        (f.lazy_static."1.1.0".spin or false) ||
+        (f.lazy_static."1.1.0".spin_no_std or false) ||
+        (lazy_static."1.1.0"."spin_no_std" or false); }
+    ];
+    version_check."${deps.lazy_static."1.1.0".version_check}".default = true;
+  }) [
+    (features_.version_check."${deps."lazy_static"."1.1.0"."version_check"}" deps)
+  ];
+
+
+  crates.libc."0.2.43" = deps: { features?(features_.libc."0.2.43" deps {}) }: buildRustCrate {
+    crateName = "libc";
+    version = "0.2.43";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0pshydmsq71kl9276zc2928ld50sp524ixcqkcqsgq410dx6c50b";
+    features = mkFeatures (features."libc"."0.2.43" or {});
+  };
+  features_.libc."0.2.43" = deps: f: updateFeatures f (rec {
+    libc = fold recursiveUpdate {} [
+      { "0.2.43".default = (f.libc."0.2.43".default or true); }
+      { "0.2.43".use_std =
+        (f.libc."0.2.43".use_std or false) ||
+        (f.libc."0.2.43".default or false) ||
+        (libc."0.2.43"."default" or false); }
+    ];
+  }) [];
+
+
+  crates.libsqlite3_sys."0.9.3" = deps: { features?(features_.libsqlite3_sys."0.9.3" deps {}) }: buildRustCrate {
+    crateName = "libsqlite3-sys";
+    version = "0.9.3";
+    authors = [ "John Gallagher <jgallagher@bignerdranch.com>" ];
+    sha256 = "128bv2y342iksv693bffvybr3zzi04vd8p0307zi9wixbdxyp021";
+    build = "build.rs";
+    dependencies = (if abi == "msvc" then mapFeatures features ([
+]) else []);
+
+    buildDependencies = mapFeatures features ([
+    ]
+      ++ (if features.libsqlite3_sys."0.9.3".pkg-config or false then [ (crates.pkg_config."0.3.14" deps) ] else []));
+    features = mkFeatures (features."libsqlite3_sys"."0.9.3" or {});
+  };
+  features_.libsqlite3_sys."0.9.3" = deps: f: updateFeatures f (rec {
+    libsqlite3_sys = fold recursiveUpdate {} [
+      { "0.9.3".bindgen =
+        (f.libsqlite3_sys."0.9.3".bindgen or false) ||
+        (f.libsqlite3_sys."0.9.3".buildtime_bindgen or false) ||
+        (libsqlite3_sys."0.9.3"."buildtime_bindgen" or false); }
+      { "0.9.3".cc =
+        (f.libsqlite3_sys."0.9.3".cc or false) ||
+        (f.libsqlite3_sys."0.9.3".bundled or false) ||
+        (libsqlite3_sys."0.9.3"."bundled" or false); }
+      { "0.9.3".default = (f.libsqlite3_sys."0.9.3".default or true); }
+      { "0.9.3".min_sqlite_version_3_6_8 =
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_6_8 or false) ||
+        (f.libsqlite3_sys."0.9.3".default or false) ||
+        (libsqlite3_sys."0.9.3"."default" or false); }
+      { "0.9.3".pkg-config =
+        (f.libsqlite3_sys."0.9.3".pkg-config or false) ||
+        (f.libsqlite3_sys."0.9.3".buildtime_bindgen or false) ||
+        (libsqlite3_sys."0.9.3"."buildtime_bindgen" or false) ||
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_6_11 or false) ||
+        (libsqlite3_sys."0.9.3"."min_sqlite_version_3_6_11" or false) ||
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_6_23 or false) ||
+        (libsqlite3_sys."0.9.3"."min_sqlite_version_3_6_23" or false) ||
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_6_8 or false) ||
+        (libsqlite3_sys."0.9.3"."min_sqlite_version_3_6_8" or false) ||
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_7_16 or false) ||
+        (libsqlite3_sys."0.9.3"."min_sqlite_version_3_7_16" or false) ||
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_7_3 or false) ||
+        (libsqlite3_sys."0.9.3"."min_sqlite_version_3_7_3" or false) ||
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_7_4 or false) ||
+        (libsqlite3_sys."0.9.3"."min_sqlite_version_3_7_4" or false) ||
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_7_7 or false) ||
+        (libsqlite3_sys."0.9.3"."min_sqlite_version_3_7_7" or false); }
+      { "0.9.3".vcpkg =
+        (f.libsqlite3_sys."0.9.3".vcpkg or false) ||
+        (f.libsqlite3_sys."0.9.3".buildtime_bindgen or false) ||
+        (libsqlite3_sys."0.9.3"."buildtime_bindgen" or false) ||
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_6_11 or false) ||
+        (libsqlite3_sys."0.9.3"."min_sqlite_version_3_6_11" or false) ||
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_6_23 or false) ||
+        (libsqlite3_sys."0.9.3"."min_sqlite_version_3_6_23" or false) ||
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_6_8 or false) ||
+        (libsqlite3_sys."0.9.3"."min_sqlite_version_3_6_8" or false) ||
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_7_16 or false) ||
+        (libsqlite3_sys."0.9.3"."min_sqlite_version_3_7_16" or false) ||
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_7_3 or false) ||
+        (libsqlite3_sys."0.9.3"."min_sqlite_version_3_7_3" or false) ||
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_7_4 or false) ||
+        (libsqlite3_sys."0.9.3"."min_sqlite_version_3_7_4" or false) ||
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_7_7 or false) ||
+        (libsqlite3_sys."0.9.3"."min_sqlite_version_3_7_7" or false); }
+    ];
+    pkg_config."${deps.libsqlite3_sys."0.9.3".pkg_config}".default = true;
+  }) [
+    (features_.pkg_config."${deps."libsqlite3_sys"."0.9.3"."pkg_config"}" deps)
+  ];
+
+
+  crates.linked_hash_map."0.4.2" = deps: { features?(features_.linked_hash_map."0.4.2" deps {}) }: buildRustCrate {
+    crateName = "linked-hash-map";
+    version = "0.4.2";
+    authors = [ "Stepan Koltsov <stepan.koltsov@gmail.com>" "Andrew Paseltiner <apaseltiner@gmail.com>" ];
+    sha256 = "04da208h6jb69f46j37jnvsw2i1wqplglp4d61csqcrhh83avbgl";
+    dependencies = mapFeatures features ([
+]);
+    features = mkFeatures (features."linked_hash_map"."0.4.2" or {});
+  };
+  features_.linked_hash_map."0.4.2" = deps: f: updateFeatures f (rec {
+    linked_hash_map = fold recursiveUpdate {} [
+      { "0.4.2".default = (f.linked_hash_map."0.4.2".default or true); }
+      { "0.4.2".heapsize =
+        (f.linked_hash_map."0.4.2".heapsize or false) ||
+        (f.linked_hash_map."0.4.2".heapsize_impl or false) ||
+        (linked_hash_map."0.4.2"."heapsize_impl" or false); }
+      { "0.4.2".serde =
+        (f.linked_hash_map."0.4.2".serde or false) ||
+        (f.linked_hash_map."0.4.2".serde_impl or false) ||
+        (linked_hash_map."0.4.2"."serde_impl" or false); }
+      { "0.4.2".serde_test =
+        (f.linked_hash_map."0.4.2".serde_test or false) ||
+        (f.linked_hash_map."0.4.2".serde_impl or false) ||
+        (linked_hash_map."0.4.2"."serde_impl" or false); }
+    ];
+  }) [];
+
+
+  crates.log."0.4.5" = deps: { features?(features_.log."0.4.5" deps {}) }: buildRustCrate {
+    crateName = "log";
+    version = "0.4.5";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1hdcj17al94ga90q7jx2y1rmxi68n3akra1awv3hr3s9b9zipgq6";
+    dependencies = mapFeatures features ([
+      (crates."cfg_if"."${deps."log"."0.4.5"."cfg_if"}" deps)
+    ]);
+    features = mkFeatures (features."log"."0.4.5" or {});
+  };
+  features_.log."0.4.5" = deps: f: updateFeatures f (rec {
+    cfg_if."${deps.log."0.4.5".cfg_if}".default = true;
+    log."0.4.5".default = (f.log."0.4.5".default or true);
+  }) [
+    (features_.cfg_if."${deps."log"."0.4.5"."cfg_if"}" deps)
+  ];
+
+
+  crates.lru_cache."0.1.1" = deps: { features?(features_.lru_cache."0.1.1" deps {}) }: buildRustCrate {
+    crateName = "lru-cache";
+    version = "0.1.1";
+    authors = [ "Stepan Koltsov <stepan.koltsov@gmail.com>" ];
+    sha256 = "1hl6kii1g54sq649gnscv858mmw7a02xj081l4vcgvrswdi2z8fw";
+    dependencies = mapFeatures features ([
+      (crates."linked_hash_map"."${deps."lru_cache"."0.1.1"."linked_hash_map"}" deps)
+    ]);
+    features = mkFeatures (features."lru_cache"."0.1.1" or {});
+  };
+  features_.lru_cache."0.1.1" = deps: f: updateFeatures f (rec {
+    linked_hash_map = fold recursiveUpdate {} [
+      { "${deps.lru_cache."0.1.1".linked_hash_map}".default = true; }
+      { "0.4.2".heapsize_impl =
+        (f.linked_hash_map."0.4.2".heapsize_impl or false) ||
+        (lru_cache."0.1.1"."heapsize_impl" or false) ||
+        (f."lru_cache"."0.1.1"."heapsize_impl" or false); }
+    ];
+    lru_cache = fold recursiveUpdate {} [
+      { "0.1.1".default = (f.lru_cache."0.1.1".default or true); }
+      { "0.1.1".heapsize =
+        (f.lru_cache."0.1.1".heapsize or false) ||
+        (f.lru_cache."0.1.1".heapsize_impl or false) ||
+        (lru_cache."0.1.1"."heapsize_impl" or false); }
+    ];
+  }) [
+    (features_.linked_hash_map."${deps."lru_cache"."0.1.1"."linked_hash_map"}" deps)
+  ];
+
+
+  crates.memchr."1.0.2" = deps: { features?(features_.memchr."1.0.2" deps {}) }: buildRustCrate {
+    crateName = "memchr";
+    version = "1.0.2";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
+    sha256 = "0dfb8ifl9nrc9kzgd5z91q6qg87sh285q1ih7xgrsglmqfav9lg7";
+    dependencies = mapFeatures features ([
+    ]
+      ++ (if features.memchr."1.0.2".libc or false then [ (crates.libc."0.2.43" deps) ] else []));
+    features = mkFeatures (features."memchr"."1.0.2" or {});
+  };
+  features_.memchr."1.0.2" = deps: f: updateFeatures f (rec {
+    libc = fold recursiveUpdate {} [
+      { "${deps.memchr."1.0.2".libc}".default = (f.libc."${deps.memchr."1.0.2".libc}".default or false); }
+      { "0.2.43".use_std =
+        (f.libc."0.2.43".use_std or false) ||
+        (memchr."1.0.2"."use_std" or false) ||
+        (f."memchr"."1.0.2"."use_std" or false); }
+    ];
+    memchr = fold recursiveUpdate {} [
+      { "1.0.2".default = (f.memchr."1.0.2".default or true); }
+      { "1.0.2".libc =
+        (f.memchr."1.0.2".libc or false) ||
+        (f.memchr."1.0.2".default or false) ||
+        (memchr."1.0.2"."default" or false) ||
+        (f.memchr."1.0.2".use_std or false) ||
+        (memchr."1.0.2"."use_std" or false); }
+      { "1.0.2".use_std =
+        (f.memchr."1.0.2".use_std or false) ||
+        (f.memchr."1.0.2".default or false) ||
+        (memchr."1.0.2"."default" or false); }
+    ];
+  }) [
+    (features_.libc."${deps."memchr"."1.0.2"."libc"}" deps)
+  ];
+
+
+  crates.memchr."2.1.0" = deps: { features?(features_.memchr."2.1.0" deps {}) }: buildRustCrate {
+    crateName = "memchr";
+    version = "2.1.0";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
+    sha256 = "02w1fc5z1ccx8fbzgcr0mpk0xf2i9g4vbx9q5c2g8pjddbaqvjjq";
+    dependencies = mapFeatures features ([
+      (crates."cfg_if"."${deps."memchr"."2.1.0"."cfg_if"}" deps)
+    ]
+      ++ (if features.memchr."2.1.0".libc or false then [ (crates.libc."0.2.43" deps) ] else []));
+
+    buildDependencies = mapFeatures features ([
+      (crates."version_check"."${deps."memchr"."2.1.0"."version_check"}" deps)
+    ]);
+    features = mkFeatures (features."memchr"."2.1.0" or {});
+  };
+  features_.memchr."2.1.0" = deps: f: updateFeatures f (rec {
+    cfg_if."${deps.memchr."2.1.0".cfg_if}".default = true;
+    libc = fold recursiveUpdate {} [
+      { "${deps.memchr."2.1.0".libc}".default = (f.libc."${deps.memchr."2.1.0".libc}".default or false); }
+      { "0.2.43".use_std =
+        (f.libc."0.2.43".use_std or false) ||
+        (memchr."2.1.0"."use_std" or false) ||
+        (f."memchr"."2.1.0"."use_std" or false); }
+    ];
+    memchr = fold recursiveUpdate {} [
+      { "2.1.0".default = (f.memchr."2.1.0".default or true); }
+      { "2.1.0".libc =
+        (f.memchr."2.1.0".libc or false) ||
+        (f.memchr."2.1.0".default or false) ||
+        (memchr."2.1.0"."default" or false) ||
+        (f.memchr."2.1.0".use_std or false) ||
+        (memchr."2.1.0"."use_std" or false); }
+      { "2.1.0".use_std =
+        (f.memchr."2.1.0".use_std or false) ||
+        (f.memchr."2.1.0".default or false) ||
+        (memchr."2.1.0"."default" or false); }
+    ];
+    version_check."${deps.memchr."2.1.0".version_check}".default = true;
+  }) [
+    (features_.cfg_if."${deps."memchr"."2.1.0"."cfg_if"}" deps)
+    (features_.libc."${deps."memchr"."2.1.0"."libc"}" deps)
+    (features_.version_check."${deps."memchr"."2.1.0"."version_check"}" deps)
+  ];
+
+
+  crates.nodrop."0.1.12" = deps: { features?(features_.nodrop."0.1.12" deps {}) }: buildRustCrate {
+    crateName = "nodrop";
+    version = "0.1.12";
+    authors = [ "bluss" ];
+    sha256 = "1b9rxvdg8061gxjc239l9slndf0ds3m6fy2sf3gs8f9kknqgl49d";
+    dependencies = mapFeatures features ([
+]);
+    features = mkFeatures (features."nodrop"."0.1.12" or {});
+  };
+  features_.nodrop."0.1.12" = deps: f: updateFeatures f (rec {
+    nodrop = fold recursiveUpdate {} [
+      { "0.1.12".default = (f.nodrop."0.1.12".default or true); }
+      { "0.1.12".nodrop-union =
+        (f.nodrop."0.1.12".nodrop-union or false) ||
+        (f.nodrop."0.1.12".use_union or false) ||
+        (nodrop."0.1.12"."use_union" or false); }
+      { "0.1.12".std =
+        (f.nodrop."0.1.12".std or false) ||
+        (f.nodrop."0.1.12".default or false) ||
+        (nodrop."0.1.12"."default" or false); }
+    ];
+  }) [];
+
+
+  crates.nom."3.2.1" = deps: { features?(features_.nom."3.2.1" deps {}) }: buildRustCrate {
+    crateName = "nom";
+    version = "3.2.1";
+    authors = [ "contact@geoffroycouprie.com" ];
+    sha256 = "1vcllxrz9hdw6j25kn020ka3psz1vkaqh1hm3yfak2240zrxgi07";
+    dependencies = mapFeatures features ([
+      (crates."memchr"."${deps."nom"."3.2.1"."memchr"}" deps)
+    ]);
+    features = mkFeatures (features."nom"."3.2.1" or {});
+  };
+  features_.nom."3.2.1" = deps: f: updateFeatures f (rec {
+    memchr = fold recursiveUpdate {} [
+      { "${deps.nom."3.2.1".memchr}".default = (f.memchr."${deps.nom."3.2.1".memchr}".default or false); }
+      { "1.0.2".use_std =
+        (f.memchr."1.0.2".use_std or false) ||
+        (nom."3.2.1"."std" or false) ||
+        (f."nom"."3.2.1"."std" or false); }
+    ];
+    nom = fold recursiveUpdate {} [
+      { "3.2.1".compiler_error =
+        (f.nom."3.2.1".compiler_error or false) ||
+        (f.nom."3.2.1".nightly or false) ||
+        (nom."3.2.1"."nightly" or false); }
+      { "3.2.1".default = (f.nom."3.2.1".default or true); }
+      { "3.2.1".lazy_static =
+        (f.nom."3.2.1".lazy_static or false) ||
+        (f.nom."3.2.1".regexp_macros or false) ||
+        (nom."3.2.1"."regexp_macros" or false); }
+      { "3.2.1".regex =
+        (f.nom."3.2.1".regex or false) ||
+        (f.nom."3.2.1".regexp or false) ||
+        (nom."3.2.1"."regexp" or false); }
+      { "3.2.1".regexp =
+        (f.nom."3.2.1".regexp or false) ||
+        (f.nom."3.2.1".regexp_macros or false) ||
+        (nom."3.2.1"."regexp_macros" or false); }
+      { "3.2.1".std =
+        (f.nom."3.2.1".std or false) ||
+        (f.nom."3.2.1".default or false) ||
+        (nom."3.2.1"."default" or false); }
+      { "3.2.1".stream =
+        (f.nom."3.2.1".stream or false) ||
+        (f.nom."3.2.1".default or false) ||
+        (nom."3.2.1"."default" or false); }
+    ];
+  }) [
+    (features_.memchr."${deps."nom"."3.2.1"."memchr"}" deps)
+  ];
+
+
+  crates.pkg_config."0.3.14" = deps: { features?(features_.pkg_config."0.3.14" deps {}) }: buildRustCrate {
+    crateName = "pkg-config";
+    version = "0.3.14";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0207fsarrm412j0dh87lfcas72n8mxar7q3mgflsbsrqnb140sv6";
+  };
+  features_.pkg_config."0.3.14" = deps: f: updateFeatures f (rec {
+    pkg_config."0.3.14".default = (f.pkg_config."0.3.14".default or true);
+  }) [];
+
+
+  crates.proc_macro2."0.4.20" = deps: { features?(features_.proc_macro2."0.4.20" deps {}) }: buildRustCrate {
+    crateName = "proc-macro2";
+    version = "0.4.20";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0yr74b00d3wzg21kjvfln7vzzvf9aghbaff4c747i3grbd997ys2";
+    build = "build.rs";
+    dependencies = mapFeatures features ([
+      (crates."unicode_xid"."${deps."proc_macro2"."0.4.20"."unicode_xid"}" deps)
+    ]);
+    features = mkFeatures (features."proc_macro2"."0.4.20" or {});
+  };
+  features_.proc_macro2."0.4.20" = deps: f: updateFeatures f (rec {
+    proc_macro2 = fold recursiveUpdate {} [
+      { "0.4.20".default = (f.proc_macro2."0.4.20".default or true); }
+      { "0.4.20".proc-macro =
+        (f.proc_macro2."0.4.20".proc-macro or false) ||
+        (f.proc_macro2."0.4.20".default or false) ||
+        (proc_macro2."0.4.20"."default" or false) ||
+        (f.proc_macro2."0.4.20".nightly or false) ||
+        (proc_macro2."0.4.20"."nightly" or false); }
+    ];
+    unicode_xid."${deps.proc_macro2."0.4.20".unicode_xid}".default = true;
+  }) [
+    (features_.unicode_xid."${deps."proc_macro2"."0.4.20"."unicode_xid"}" deps)
+  ];
+
+
+  crates.quick_error."1.2.2" = deps: { features?(features_.quick_error."1.2.2" deps {}) }: buildRustCrate {
+    crateName = "quick-error";
+    version = "1.2.2";
+    authors = [ "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" ];
+    sha256 = "192a3adc5phgpibgqblsdx1b421l5yg9bjbmv552qqq9f37h60k5";
+  };
+  features_.quick_error."1.2.2" = deps: f: updateFeatures f (rec {
+    quick_error."1.2.2".default = (f.quick_error."1.2.2".default or true);
+  }) [];
+
+
+  crates.quote."0.6.8" = deps: { features?(features_.quote."0.6.8" deps {}) }: buildRustCrate {
+    crateName = "quote";
+    version = "0.6.8";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "0dq6j23w6pmc4l6v490arixdwypy0b82z76nrzaingqhqri4p3mh";
+    dependencies = mapFeatures features ([
+      (crates."proc_macro2"."${deps."quote"."0.6.8"."proc_macro2"}" deps)
+    ]);
+    features = mkFeatures (features."quote"."0.6.8" or {});
+  };
+  features_.quote."0.6.8" = deps: f: updateFeatures f (rec {
+    proc_macro2 = fold recursiveUpdate {} [
+      { "${deps.quote."0.6.8".proc_macro2}".default = (f.proc_macro2."${deps.quote."0.6.8".proc_macro2}".default or false); }
+      { "0.4.20".proc-macro =
+        (f.proc_macro2."0.4.20".proc-macro or false) ||
+        (quote."0.6.8"."proc-macro" or false) ||
+        (f."quote"."0.6.8"."proc-macro" or false); }
+    ];
+    quote = fold recursiveUpdate {} [
+      { "0.6.8".default = (f.quote."0.6.8".default or true); }
+      { "0.6.8".proc-macro =
+        (f.quote."0.6.8".proc-macro or false) ||
+        (f.quote."0.6.8".default or false) ||
+        (quote."0.6.8"."default" or false); }
+    ];
+  }) [
+    (features_.proc_macro2."${deps."quote"."0.6.8"."proc_macro2"}" deps)
+  ];
+
+
+  crates.rand."0.4.3" = deps: { features?(features_.rand."0.4.3" deps {}) }: buildRustCrate {
+    crateName = "rand";
+    version = "0.4.3";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1644wri45l147822xy7dgdm4k7myxzs66cb795ga0x7dan11ci4f";
+    dependencies = (if kernel == "fuchsia" then mapFeatures features ([
+      (crates."fuchsia_zircon"."${deps."rand"."0.4.3"."fuchsia_zircon"}" deps)
+    ]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
+    ]
+      ++ (if features.rand."0.4.3".libc or false then [ (crates.libc."0.2.43" deps) ] else [])) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([
+      (crates."winapi"."${deps."rand"."0.4.3"."winapi"}" deps)
+    ]) else []);
+    features = mkFeatures (features."rand"."0.4.3" or {});
+  };
+  features_.rand."0.4.3" = deps: f: updateFeatures f (rec {
+    fuchsia_zircon."${deps.rand."0.4.3".fuchsia_zircon}".default = true;
+    libc."${deps.rand."0.4.3".libc}".default = true;
+    rand = fold recursiveUpdate {} [
+      { "0.4.3".default = (f.rand."0.4.3".default or true); }
+      { "0.4.3".i128_support =
+        (f.rand."0.4.3".i128_support or false) ||
+        (f.rand."0.4.3".nightly or false) ||
+        (rand."0.4.3"."nightly" or false); }
+      { "0.4.3".libc =
+        (f.rand."0.4.3".libc or false) ||
+        (f.rand."0.4.3".std or false) ||
+        (rand."0.4.3"."std" or false); }
+      { "0.4.3".std =
+        (f.rand."0.4.3".std or false) ||
+        (f.rand."0.4.3".default or false) ||
+        (rand."0.4.3"."default" or false); }
+    ];
+    winapi = fold recursiveUpdate {} [
+      { "${deps.rand."0.4.3".winapi}"."minwindef" = true; }
+      { "${deps.rand."0.4.3".winapi}"."ntsecapi" = true; }
+      { "${deps.rand."0.4.3".winapi}"."profileapi" = true; }
+      { "${deps.rand."0.4.3".winapi}"."winnt" = true; }
+      { "${deps.rand."0.4.3".winapi}".default = true; }
+    ];
+  }) [
+    (features_.fuchsia_zircon."${deps."rand"."0.4.3"."fuchsia_zircon"}" deps)
+    (features_.libc."${deps."rand"."0.4.3"."libc"}" deps)
+    (features_.winapi."${deps."rand"."0.4.3"."winapi"}" deps)
+  ];
+
+
+  crates.redox_syscall."0.1.40" = deps: { features?(features_.redox_syscall."0.1.40" deps {}) }: buildRustCrate {
+    crateName = "redox_syscall";
+    version = "0.1.40";
+    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
+    sha256 = "132rnhrq49l3z7gjrwj2zfadgw6q0355s6a7id7x7c0d7sk72611";
+    libName = "syscall";
+  };
+  features_.redox_syscall."0.1.40" = deps: f: updateFeatures f (rec {
+    redox_syscall."0.1.40".default = (f.redox_syscall."0.1.40".default or true);
+  }) [];
+
+
+  crates.redox_termios."0.1.1" = deps: { features?(features_.redox_termios."0.1.1" deps {}) }: buildRustCrate {
+    crateName = "redox_termios";
+    version = "0.1.1";
+    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
+    sha256 = "04s6yyzjca552hdaqlvqhp3vw0zqbc304md5czyd3axh56iry8wh";
+    libPath = "src/lib.rs";
+    dependencies = mapFeatures features ([
+      (crates."redox_syscall"."${deps."redox_termios"."0.1.1"."redox_syscall"}" deps)
+    ]);
+  };
+  features_.redox_termios."0.1.1" = deps: f: updateFeatures f (rec {
+    redox_syscall."${deps.redox_termios."0.1.1".redox_syscall}".default = true;
+    redox_termios."0.1.1".default = (f.redox_termios."0.1.1".default or true);
+  }) [
+    (features_.redox_syscall."${deps."redox_termios"."0.1.1"."redox_syscall"}" deps)
+  ];
+
+
+  crates.redox_users."0.2.0" = deps: { features?(features_.redox_users."0.2.0" deps {}) }: buildRustCrate {
+    crateName = "redox_users";
+    version = "0.2.0";
+    authors = [ "Jose Narvaez <goyox86@gmail.com>" "Wesley Hershberger <mggmugginsmc@gmail.com>" ];
+    sha256 = "0s9jrh378jk8rfi1xfwxvh2r1gv6rn3bq6n7sbajkrqqq0xzijvf";
+    dependencies = mapFeatures features ([
+      (crates."argon2rs"."${deps."redox_users"."0.2.0"."argon2rs"}" deps)
+      (crates."failure"."${deps."redox_users"."0.2.0"."failure"}" deps)
+      (crates."rand"."${deps."redox_users"."0.2.0"."rand"}" deps)
+      (crates."redox_syscall"."${deps."redox_users"."0.2.0"."redox_syscall"}" deps)
+    ]);
+  };
+  features_.redox_users."0.2.0" = deps: f: updateFeatures f (rec {
+    argon2rs."${deps.redox_users."0.2.0".argon2rs}".default = (f.argon2rs."${deps.redox_users."0.2.0".argon2rs}".default or false);
+    failure."${deps.redox_users."0.2.0".failure}".default = true;
+    rand."${deps.redox_users."0.2.0".rand}".default = true;
+    redox_syscall."${deps.redox_users."0.2.0".redox_syscall}".default = true;
+    redox_users."0.2.0".default = (f.redox_users."0.2.0".default or true);
+  }) [
+    (features_.argon2rs."${deps."redox_users"."0.2.0"."argon2rs"}" deps)
+    (features_.failure."${deps."redox_users"."0.2.0"."failure"}" deps)
+    (features_.rand."${deps."redox_users"."0.2.0"."rand"}" deps)
+    (features_.redox_syscall."${deps."redox_users"."0.2.0"."redox_syscall"}" deps)
+  ];
+
+
+  crates.regex."1.0.5" = deps: { features?(features_.regex."1.0.5" deps {}) }: buildRustCrate {
+    crateName = "regex";
+    version = "1.0.5";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1nb4dva9lhb3v76bdds9qcxldb2xy998sdraqnqaqdr6axfsfp02";
+    dependencies = mapFeatures features ([
+      (crates."aho_corasick"."${deps."regex"."1.0.5"."aho_corasick"}" deps)
+      (crates."memchr"."${deps."regex"."1.0.5"."memchr"}" deps)
+      (crates."regex_syntax"."${deps."regex"."1.0.5"."regex_syntax"}" deps)
+      (crates."thread_local"."${deps."regex"."1.0.5"."thread_local"}" deps)
+      (crates."utf8_ranges"."${deps."regex"."1.0.5"."utf8_ranges"}" deps)
+    ]);
+    features = mkFeatures (features."regex"."1.0.5" or {});
+  };
+  features_.regex."1.0.5" = deps: f: updateFeatures f (rec {
+    aho_corasick."${deps.regex."1.0.5".aho_corasick}".default = true;
+    memchr."${deps.regex."1.0.5".memchr}".default = true;
+    regex = fold recursiveUpdate {} [
+      { "1.0.5".default = (f.regex."1.0.5".default or true); }
+      { "1.0.5".pattern =
+        (f.regex."1.0.5".pattern or false) ||
+        (f.regex."1.0.5".unstable or false) ||
+        (regex."1.0.5"."unstable" or false); }
+      { "1.0.5".use_std =
+        (f.regex."1.0.5".use_std or false) ||
+        (f.regex."1.0.5".default or false) ||
+        (regex."1.0.5"."default" or false); }
+    ];
+    regex_syntax."${deps.regex."1.0.5".regex_syntax}".default = true;
+    thread_local."${deps.regex."1.0.5".thread_local}".default = true;
+    utf8_ranges."${deps.regex."1.0.5".utf8_ranges}".default = true;
+  }) [
+    (features_.aho_corasick."${deps."regex"."1.0.5"."aho_corasick"}" deps)
+    (features_.memchr."${deps."regex"."1.0.5"."memchr"}" deps)
+    (features_.regex_syntax."${deps."regex"."1.0.5"."regex_syntax"}" deps)
+    (features_.thread_local."${deps."regex"."1.0.5"."thread_local"}" deps)
+    (features_.utf8_ranges."${deps."regex"."1.0.5"."utf8_ranges"}" deps)
+  ];
+
+
+  crates.regex_syntax."0.6.2" = deps: { features?(features_.regex_syntax."0.6.2" deps {}) }: buildRustCrate {
+    crateName = "regex-syntax";
+    version = "0.6.2";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "109426mj7nhwr6szdzbcvn1a8g5zy52f9maqxjd9agm8wg87ylyw";
+    dependencies = mapFeatures features ([
+      (crates."ucd_util"."${deps."regex_syntax"."0.6.2"."ucd_util"}" deps)
+    ]);
+  };
+  features_.regex_syntax."0.6.2" = deps: f: updateFeatures f (rec {
+    regex_syntax."0.6.2".default = (f.regex_syntax."0.6.2".default or true);
+    ucd_util."${deps.regex_syntax."0.6.2".ucd_util}".default = true;
+  }) [
+    (features_.ucd_util."${deps."regex_syntax"."0.6.2"."ucd_util"}" deps)
+  ];
+
+
+  crates.remove_dir_all."0.5.1" = deps: { features?(features_.remove_dir_all."0.5.1" deps {}) }: buildRustCrate {
+    crateName = "remove_dir_all";
+    version = "0.5.1";
+    authors = [ "Aaronepower <theaaronepower@gmail.com>" ];
+    sha256 = "1chx3yvfbj46xjz4bzsvps208l46hfbcy0sm98gpiya454n4rrl7";
+    dependencies = (if kernel == "windows" then mapFeatures features ([
+      (crates."winapi"."${deps."remove_dir_all"."0.5.1"."winapi"}" deps)
+    ]) else []);
+  };
+  features_.remove_dir_all."0.5.1" = deps: f: updateFeatures f (rec {
+    remove_dir_all."0.5.1".default = (f.remove_dir_all."0.5.1".default or true);
+    winapi = fold recursiveUpdate {} [
+      { "${deps.remove_dir_all."0.5.1".winapi}"."errhandlingapi" = true; }
+      { "${deps.remove_dir_all."0.5.1".winapi}"."fileapi" = true; }
+      { "${deps.remove_dir_all."0.5.1".winapi}"."std" = true; }
+      { "${deps.remove_dir_all."0.5.1".winapi}"."winbase" = true; }
+      { "${deps.remove_dir_all."0.5.1".winapi}"."winerror" = true; }
+      { "${deps.remove_dir_all."0.5.1".winapi}".default = true; }
+    ];
+  }) [
+    (features_.winapi."${deps."remove_dir_all"."0.5.1"."winapi"}" deps)
+  ];
+
+
+  crates.rusqlite."0.14.0" = deps: { features?(features_.rusqlite."0.14.0" deps {}) }: buildRustCrate {
+    crateName = "rusqlite";
+    version = "0.14.0";
+    authors = [ "John Gallagher <jgallagher@bignerdranch.com>" ];
+    sha256 = "06j1z8yicn6jg8irxclsvgp0575gz5k24jgnbk0d807i5gvsg9jq";
+    dependencies = mapFeatures features ([
+      (crates."bitflags"."${deps."rusqlite"."0.14.0"."bitflags"}" deps)
+      (crates."libsqlite3_sys"."${deps."rusqlite"."0.14.0"."libsqlite3_sys"}" deps)
+      (crates."lru_cache"."${deps."rusqlite"."0.14.0"."lru_cache"}" deps)
+      (crates."time"."${deps."rusqlite"."0.14.0"."time"}" deps)
+    ]);
+    features = mkFeatures (features."rusqlite"."0.14.0" or {});
+  };
+  features_.rusqlite."0.14.0" = deps: f: updateFeatures f (rec {
+    bitflags."${deps.rusqlite."0.14.0".bitflags}".default = true;
+    libsqlite3_sys = fold recursiveUpdate {} [
+      { "${deps.rusqlite."0.14.0".libsqlite3_sys}".default = true; }
+      { "0.9.3".buildtime_bindgen =
+        (f.libsqlite3_sys."0.9.3".buildtime_bindgen or false) ||
+        (rusqlite."0.14.0"."buildtime_bindgen" or false) ||
+        (f."rusqlite"."0.14.0"."buildtime_bindgen" or false); }
+      { "0.9.3".bundled =
+        (f.libsqlite3_sys."0.9.3".bundled or false) ||
+        (rusqlite."0.14.0"."bundled" or false) ||
+        (f."rusqlite"."0.14.0"."bundled" or false); }
+      { "0.9.3".min_sqlite_version_3_6_11 =
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_6_11 or false) ||
+        (rusqlite."0.14.0"."backup" or false) ||
+        (f."rusqlite"."0.14.0"."backup" or false); }
+      { "0.9.3".min_sqlite_version_3_6_23 =
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_6_23 or false) ||
+        (rusqlite."0.14.0"."trace" or false) ||
+        (f."rusqlite"."0.14.0"."trace" or false); }
+      { "0.9.3".min_sqlite_version_3_7_3 =
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_7_3 or false) ||
+        (rusqlite."0.14.0"."functions" or false) ||
+        (f."rusqlite"."0.14.0"."functions" or false); }
+      { "0.9.3".min_sqlite_version_3_7_4 =
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_7_4 or false) ||
+        (rusqlite."0.14.0"."blob" or false) ||
+        (f."rusqlite"."0.14.0"."blob" or false); }
+      { "0.9.3".min_sqlite_version_3_7_7 =
+        (f.libsqlite3_sys."0.9.3".min_sqlite_version_3_7_7 or false) ||
+        (rusqlite."0.14.0"."vtab" or false) ||
+        (f."rusqlite"."0.14.0"."vtab" or false); }
+      { "0.9.3".sqlcipher =
+        (f.libsqlite3_sys."0.9.3".sqlcipher or false) ||
+        (rusqlite."0.14.0"."sqlcipher" or false) ||
+        (f."rusqlite"."0.14.0"."sqlcipher" or false); }
+      { "0.9.3".unlock_notify =
+        (f.libsqlite3_sys."0.9.3".unlock_notify or false) ||
+        (rusqlite."0.14.0"."unlock_notify" or false) ||
+        (f."rusqlite"."0.14.0"."unlock_notify" or false); }
+    ];
+    lru_cache."${deps.rusqlite."0.14.0".lru_cache}".default = true;
+    rusqlite = fold recursiveUpdate {} [
+      { "0.14.0".bundled =
+        (f.rusqlite."0.14.0".bundled or false) ||
+        (f.rusqlite."0.14.0".array or false) ||
+        (rusqlite."0.14.0"."array" or false); }
+      { "0.14.0".csv =
+        (f.rusqlite."0.14.0".csv or false) ||
+        (f.rusqlite."0.14.0".csvtab or false) ||
+        (rusqlite."0.14.0"."csvtab" or false); }
+      { "0.14.0".default = (f.rusqlite."0.14.0".default or true); }
+      { "0.14.0".lazy_static =
+        (f.rusqlite."0.14.0".lazy_static or false) ||
+        (f.rusqlite."0.14.0".vtab or false) ||
+        (rusqlite."0.14.0"."vtab" or false); }
+      { "0.14.0".vtab =
+        (f.rusqlite."0.14.0".vtab or false) ||
+        (f.rusqlite."0.14.0".array or false) ||
+        (rusqlite."0.14.0"."array" or false) ||
+        (f.rusqlite."0.14.0".csvtab or false) ||
+        (rusqlite."0.14.0"."csvtab" or false); }
+    ];
+    time."${deps.rusqlite."0.14.0".time}".default = true;
+  }) [
+    (features_.bitflags."${deps."rusqlite"."0.14.0"."bitflags"}" deps)
+    (features_.libsqlite3_sys."${deps."rusqlite"."0.14.0"."libsqlite3_sys"}" deps)
+    (features_.lru_cache."${deps."rusqlite"."0.14.0"."lru_cache"}" deps)
+    (features_.time."${deps."rusqlite"."0.14.0"."time"}" deps)
+  ];
+
+
+  crates.rustc_demangle."0.1.9" = deps: { features?(features_.rustc_demangle."0.1.9" deps {}) }: buildRustCrate {
+    crateName = "rustc-demangle";
+    version = "0.1.9";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "00ma4r9haq0zv5krps617mym6y74056pfcivyld0kpci156vfaax";
+  };
+  features_.rustc_demangle."0.1.9" = deps: f: updateFeatures f (rec {
+    rustc_demangle."0.1.9".default = (f.rustc_demangle."0.1.9".default or true);
+  }) [];
+
+
+  crates.ryu."0.2.6" = deps: { features?(features_.ryu."0.2.6" deps {}) }: buildRustCrate {
+    crateName = "ryu";
+    version = "0.2.6";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1vdh6z4aysc9kiiqhl7vxkqz3fykcnp24kgfizshlwfsz2j0p9dr";
+    build = "build.rs";
+    dependencies = mapFeatures features ([
+]);
+    features = mkFeatures (features."ryu"."0.2.6" or {});
+  };
+  features_.ryu."0.2.6" = deps: f: updateFeatures f (rec {
+    ryu."0.2.6".default = (f.ryu."0.2.6".default or true);
+  }) [];
+
+
+  crates.scoped_threadpool."0.1.9" = deps: { features?(features_.scoped_threadpool."0.1.9" deps {}) }: buildRustCrate {
+    crateName = "scoped_threadpool";
+    version = "0.1.9";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "1arqj2skcfr46s1lcyvnlmfr5456kg5nhn8k90xyfjnxkp5yga2v";
+    features = mkFeatures (features."scoped_threadpool"."0.1.9" or {});
+  };
+  features_.scoped_threadpool."0.1.9" = deps: f: updateFeatures f (rec {
+    scoped_threadpool."0.1.9".default = (f.scoped_threadpool."0.1.9".default or true);
+  }) [];
+
+
+  crates.serde."1.0.80" = deps: { features?(features_.serde."1.0.80" deps {}) }: buildRustCrate {
+    crateName = "serde";
+    version = "1.0.80";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "0vyciw2qhrws4hz87pfnsjdfzzdw2sclxqxq394g3a219a2rdcxz";
+    build = "build.rs";
+    dependencies = mapFeatures features ([
+]);
+    features = mkFeatures (features."serde"."1.0.80" or {});
+  };
+  features_.serde."1.0.80" = deps: f: updateFeatures f (rec {
+    serde = fold recursiveUpdate {} [
+      { "1.0.80".default = (f.serde."1.0.80".default or true); }
+      { "1.0.80".serde_derive =
+        (f.serde."1.0.80".serde_derive or false) ||
+        (f.serde."1.0.80".derive or false) ||
+        (serde."1.0.80"."derive" or false); }
+      { "1.0.80".std =
+        (f.serde."1.0.80".std or false) ||
+        (f.serde."1.0.80".default or false) ||
+        (serde."1.0.80"."default" or false); }
+      { "1.0.80".unstable =
+        (f.serde."1.0.80".unstable or false) ||
+        (f.serde."1.0.80".alloc or false) ||
+        (serde."1.0.80"."alloc" or false); }
+    ];
+  }) [];
+
+
+  crates.serde_derive."1.0.80" = deps: { features?(features_.serde_derive."1.0.80" deps {}) }: buildRustCrate {
+    crateName = "serde_derive";
+    version = "1.0.80";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1akvzhbnnqhd92lfj7vp43scs1vdml7x27c82l5yh0kz7xf7jaky";
+    procMacro = true;
+    dependencies = mapFeatures features ([
+      (crates."proc_macro2"."${deps."serde_derive"."1.0.80"."proc_macro2"}" deps)
+      (crates."quote"."${deps."serde_derive"."1.0.80"."quote"}" deps)
+      (crates."syn"."${deps."serde_derive"."1.0.80"."syn"}" deps)
+    ]);
+    features = mkFeatures (features."serde_derive"."1.0.80" or {});
+  };
+  features_.serde_derive."1.0.80" = deps: f: updateFeatures f (rec {
+    proc_macro2."${deps.serde_derive."1.0.80".proc_macro2}".default = true;
+    quote."${deps.serde_derive."1.0.80".quote}".default = true;
+    serde_derive."1.0.80".default = (f.serde_derive."1.0.80".default or true);
+    syn = fold recursiveUpdate {} [
+      { "${deps.serde_derive."1.0.80".syn}"."visit" = true; }
+      { "${deps.serde_derive."1.0.80".syn}".default = true; }
+    ];
+  }) [
+    (features_.proc_macro2."${deps."serde_derive"."1.0.80"."proc_macro2"}" deps)
+    (features_.quote."${deps."serde_derive"."1.0.80"."quote"}" deps)
+    (features_.syn."${deps."serde_derive"."1.0.80"."syn"}" deps)
+  ];
+
+
+  crates.serde_json."1.0.32" = deps: { features?(features_.serde_json."1.0.32" deps {}) }: buildRustCrate {
+    crateName = "serde_json";
+    version = "1.0.32";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1dqkvizi02j1bs5c21kw20idf4aa5399g29ndwl6vkmmrqkr1gr0";
+    dependencies = mapFeatures features ([
+      (crates."itoa"."${deps."serde_json"."1.0.32"."itoa"}" deps)
+      (crates."ryu"."${deps."serde_json"."1.0.32"."ryu"}" deps)
+      (crates."serde"."${deps."serde_json"."1.0.32"."serde"}" deps)
+    ]);
+    features = mkFeatures (features."serde_json"."1.0.32" or {});
+  };
+  features_.serde_json."1.0.32" = deps: f: updateFeatures f (rec {
+    itoa."${deps.serde_json."1.0.32".itoa}".default = true;
+    ryu."${deps.serde_json."1.0.32".ryu}".default = true;
+    serde."${deps.serde_json."1.0.32".serde}".default = true;
+    serde_json = fold recursiveUpdate {} [
+      { "1.0.32".default = (f.serde_json."1.0.32".default or true); }
+      { "1.0.32".indexmap =
+        (f.serde_json."1.0.32".indexmap or false) ||
+        (f.serde_json."1.0.32".preserve_order or false) ||
+        (serde_json."1.0.32"."preserve_order" or false); }
+    ];
+  }) [
+    (features_.itoa."${deps."serde_json"."1.0.32"."itoa"}" deps)
+    (features_.ryu."${deps."serde_json"."1.0.32"."ryu"}" deps)
+    (features_.serde."${deps."serde_json"."1.0.32"."serde"}" deps)
+  ];
+
+
+  crates.strsim."0.7.0" = deps: { features?(features_.strsim."0.7.0" deps {}) }: buildRustCrate {
+    crateName = "strsim";
+    version = "0.7.0";
+    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
+    sha256 = "0fy0k5f2705z73mb3x9459bpcvrx4ky8jpr4zikcbiwan4bnm0iv";
+  };
+  features_.strsim."0.7.0" = deps: f: updateFeatures f (rec {
+    strsim."0.7.0".default = (f.strsim."0.7.0".default or true);
+  }) [];
+
+
+  crates.syn."0.15.13" = deps: { features?(features_.syn."0.15.13" deps {}) }: buildRustCrate {
+    crateName = "syn";
+    version = "0.15.13";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1zvnppl08f2njpkl3m10h221sdl4vsm7v6vyq63dxk16nn37b1bh";
+    dependencies = mapFeatures features ([
+      (crates."proc_macro2"."${deps."syn"."0.15.13"."proc_macro2"}" deps)
+      (crates."unicode_xid"."${deps."syn"."0.15.13"."unicode_xid"}" deps)
+    ]
+      ++ (if features.syn."0.15.13".quote or false then [ (crates.quote."0.6.8" deps) ] else []));
+    features = mkFeatures (features."syn"."0.15.13" or {});
+  };
+  features_.syn."0.15.13" = deps: f: updateFeatures f (rec {
+    proc_macro2 = fold recursiveUpdate {} [
+      { "${deps.syn."0.15.13".proc_macro2}".default = (f.proc_macro2."${deps.syn."0.15.13".proc_macro2}".default or false); }
+      { "0.4.20".proc-macro =
+        (f.proc_macro2."0.4.20".proc-macro or false) ||
+        (syn."0.15.13"."proc-macro" or false) ||
+        (f."syn"."0.15.13"."proc-macro" or false); }
+    ];
+    quote = fold recursiveUpdate {} [
+      { "${deps.syn."0.15.13".quote}".default = (f.quote."${deps.syn."0.15.13".quote}".default or false); }
+      { "0.6.8".proc-macro =
+        (f.quote."0.6.8".proc-macro or false) ||
+        (syn."0.15.13"."proc-macro" or false) ||
+        (f."syn"."0.15.13"."proc-macro" or false); }
+    ];
+    syn = fold recursiveUpdate {} [
+      { "0.15.13".clone-impls =
+        (f.syn."0.15.13".clone-impls or false) ||
+        (f.syn."0.15.13".default or false) ||
+        (syn."0.15.13"."default" or false); }
+      { "0.15.13".default = (f.syn."0.15.13".default or true); }
+      { "0.15.13".derive =
+        (f.syn."0.15.13".derive or false) ||
+        (f.syn."0.15.13".default or false) ||
+        (syn."0.15.13"."default" or false); }
+      { "0.15.13".parsing =
+        (f.syn."0.15.13".parsing or false) ||
+        (f.syn."0.15.13".default or false) ||
+        (syn."0.15.13"."default" or false); }
+      { "0.15.13".printing =
+        (f.syn."0.15.13".printing or false) ||
+        (f.syn."0.15.13".default or false) ||
+        (syn."0.15.13"."default" or false); }
+      { "0.15.13".proc-macro =
+        (f.syn."0.15.13".proc-macro or false) ||
+        (f.syn."0.15.13".default or false) ||
+        (syn."0.15.13"."default" or false); }
+      { "0.15.13".quote =
+        (f.syn."0.15.13".quote or false) ||
+        (f.syn."0.15.13".printing or false) ||
+        (syn."0.15.13"."printing" or false); }
+    ];
+    unicode_xid."${deps.syn."0.15.13".unicode_xid}".default = true;
+  }) [
+    (features_.proc_macro2."${deps."syn"."0.15.13"."proc_macro2"}" deps)
+    (features_.quote."${deps."syn"."0.15.13"."quote"}" deps)
+    (features_.unicode_xid."${deps."syn"."0.15.13"."unicode_xid"}" deps)
+  ];
+
+
+  crates.synstructure."0.10.0" = deps: { features?(features_.synstructure."0.10.0" deps {}) }: buildRustCrate {
+    crateName = "synstructure";
+    version = "0.10.0";
+    authors = [ "Nika Layzell <nika@thelayzells.com>" ];
+    sha256 = "1alb4hsbm5qf4jy7nmdkqrh3jagqk1xj88w0pmz67f16dvgpf0qf";
+    dependencies = mapFeatures features ([
+      (crates."proc_macro2"."${deps."synstructure"."0.10.0"."proc_macro2"}" deps)
+      (crates."quote"."${deps."synstructure"."0.10.0"."quote"}" deps)
+      (crates."syn"."${deps."synstructure"."0.10.0"."syn"}" deps)
+      (crates."unicode_xid"."${deps."synstructure"."0.10.0"."unicode_xid"}" deps)
+    ]);
+    features = mkFeatures (features."synstructure"."0.10.0" or {});
+  };
+  features_.synstructure."0.10.0" = deps: f: updateFeatures f (rec {
+    proc_macro2."${deps.synstructure."0.10.0".proc_macro2}".default = true;
+    quote."${deps.synstructure."0.10.0".quote}".default = true;
+    syn = fold recursiveUpdate {} [
+      { "${deps.synstructure."0.10.0".syn}"."extra-traits" = true; }
+      { "${deps.synstructure."0.10.0".syn}"."visit" = true; }
+      { "${deps.synstructure."0.10.0".syn}".default = true; }
+    ];
+    synstructure."0.10.0".default = (f.synstructure."0.10.0".default or true);
+    unicode_xid."${deps.synstructure."0.10.0".unicode_xid}".default = true;
+  }) [
+    (features_.proc_macro2."${deps."synstructure"."0.10.0"."proc_macro2"}" deps)
+    (features_.quote."${deps."synstructure"."0.10.0"."quote"}" deps)
+    (features_.syn."${deps."synstructure"."0.10.0"."syn"}" deps)
+    (features_.unicode_xid."${deps."synstructure"."0.10.0"."unicode_xid"}" deps)
+  ];
+
+
+  crates.tempdir."0.3.7" = deps: { features?(features_.tempdir."0.3.7" deps {}) }: buildRustCrate {
+    crateName = "tempdir";
+    version = "0.3.7";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0y53sxybyljrr7lh0x0ysrsa7p7cljmwv9v80acy3rc6n97g67vy";
+    dependencies = mapFeatures features ([
+      (crates."rand"."${deps."tempdir"."0.3.7"."rand"}" deps)
+      (crates."remove_dir_all"."${deps."tempdir"."0.3.7"."remove_dir_all"}" deps)
+    ]);
+  };
+  features_.tempdir."0.3.7" = deps: f: updateFeatures f (rec {
+    rand."${deps.tempdir."0.3.7".rand}".default = true;
+    remove_dir_all."${deps.tempdir."0.3.7".remove_dir_all}".default = true;
+    tempdir."0.3.7".default = (f.tempdir."0.3.7".default or true);
+  }) [
+    (features_.rand."${deps."tempdir"."0.3.7"."rand"}" deps)
+    (features_.remove_dir_all."${deps."tempdir"."0.3.7"."remove_dir_all"}" deps)
+  ];
+
+
+  crates.termcolor."1.0.4" = deps: { features?(features_.termcolor."1.0.4" deps {}) }: buildRustCrate {
+    crateName = "termcolor";
+    version = "1.0.4";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "0xydrjc0bxg08llcbcmkka29szdrfklk4vh6l6mdd67ajifqw1mv";
+    dependencies = (if kernel == "windows" then mapFeatures features ([
+      (crates."wincolor"."${deps."termcolor"."1.0.4"."wincolor"}" deps)
+    ]) else []);
+  };
+  features_.termcolor."1.0.4" = deps: f: updateFeatures f (rec {
+    termcolor."1.0.4".default = (f.termcolor."1.0.4".default or true);
+    wincolor."${deps.termcolor."1.0.4".wincolor}".default = true;
+  }) [
+    (features_.wincolor."${deps."termcolor"."1.0.4"."wincolor"}" deps)
+  ];
+
+
+  crates.termion."1.5.1" = deps: { features?(features_.termion."1.5.1" deps {}) }: buildRustCrate {
+    crateName = "termion";
+    version = "1.5.1";
+    authors = [ "ticki <Ticki@users.noreply.github.com>" "gycos <alexandre.bury@gmail.com>" "IGI-111 <igi-111@protonmail.com>" ];
+    sha256 = "02gq4vd8iws1f3gjrgrgpajsk2bk43nds5acbbb4s8dvrdvr8nf1";
+    dependencies = (if !(kernel == "redox") then mapFeatures features ([
+      (crates."libc"."${deps."termion"."1.5.1"."libc"}" deps)
+    ]) else [])
+      ++ (if kernel == "redox" then mapFeatures features ([
+      (crates."redox_syscall"."${deps."termion"."1.5.1"."redox_syscall"}" deps)
+      (crates."redox_termios"."${deps."termion"."1.5.1"."redox_termios"}" deps)
+    ]) else []);
+  };
+  features_.termion."1.5.1" = deps: f: updateFeatures f (rec {
+    libc."${deps.termion."1.5.1".libc}".default = true;
+    redox_syscall."${deps.termion."1.5.1".redox_syscall}".default = true;
+    redox_termios."${deps.termion."1.5.1".redox_termios}".default = true;
+    termion."1.5.1".default = (f.termion."1.5.1".default or true);
+  }) [
+    (features_.libc."${deps."termion"."1.5.1"."libc"}" deps)
+    (features_.redox_syscall."${deps."termion"."1.5.1"."redox_syscall"}" deps)
+    (features_.redox_termios."${deps."termion"."1.5.1"."redox_termios"}" deps)
+  ];
+
+
+  crates.textwrap."0.10.0" = deps: { features?(features_.textwrap."0.10.0" deps {}) }: buildRustCrate {
+    crateName = "textwrap";
+    version = "0.10.0";
+    authors = [ "Martin Geisler <martin@geisler.net>" ];
+    sha256 = "1s8d5cna12smhgj0x2y1xphklyk2an1yzbadnj89p1vy5vnjpsas";
+    dependencies = mapFeatures features ([
+      (crates."unicode_width"."${deps."textwrap"."0.10.0"."unicode_width"}" deps)
+    ]);
+  };
+  features_.textwrap."0.10.0" = deps: f: updateFeatures f (rec {
+    textwrap."0.10.0".default = (f.textwrap."0.10.0".default or true);
+    unicode_width."${deps.textwrap."0.10.0".unicode_width}".default = true;
+  }) [
+    (features_.unicode_width."${deps."textwrap"."0.10.0"."unicode_width"}" deps)
+  ];
+
+
+  crates.thread_local."0.3.6" = deps: { features?(features_.thread_local."0.3.6" deps {}) }: buildRustCrate {
+    crateName = "thread_local";
+    version = "0.3.6";
+    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
+    sha256 = "02rksdwjmz2pw9bmgbb4c0bgkbq5z6nvg510sq1s6y2j1gam0c7i";
+    dependencies = mapFeatures features ([
+      (crates."lazy_static"."${deps."thread_local"."0.3.6"."lazy_static"}" deps)
+    ]);
+  };
+  features_.thread_local."0.3.6" = deps: f: updateFeatures f (rec {
+    lazy_static."${deps.thread_local."0.3.6".lazy_static}".default = true;
+    thread_local."0.3.6".default = (f.thread_local."0.3.6".default or true);
+  }) [
+    (features_.lazy_static."${deps."thread_local"."0.3.6"."lazy_static"}" deps)
+  ];
+
+
+  crates.time."0.1.40" = deps: { features?(features_.time."0.1.40" deps {}) }: buildRustCrate {
+    crateName = "time";
+    version = "0.1.40";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0wgnbjamljz6bqxsd5axc4p2mmhkqfrryj4gf2yswjaxiw5dd01m";
+    dependencies = mapFeatures features ([
+      (crates."libc"."${deps."time"."0.1.40"."libc"}" deps)
+    ])
+      ++ (if kernel == "redox" then mapFeatures features ([
+      (crates."redox_syscall"."${deps."time"."0.1.40"."redox_syscall"}" deps)
+    ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([
+      (crates."winapi"."${deps."time"."0.1.40"."winapi"}" deps)
+    ]) else []);
+  };
+  features_.time."0.1.40" = deps: f: updateFeatures f (rec {
+    libc."${deps.time."0.1.40".libc}".default = true;
+    redox_syscall."${deps.time."0.1.40".redox_syscall}".default = true;
+    time."0.1.40".default = (f.time."0.1.40".default or true);
+    winapi = fold recursiveUpdate {} [
+      { "${deps.time."0.1.40".winapi}"."minwinbase" = true; }
+      { "${deps.time."0.1.40".winapi}"."minwindef" = true; }
+      { "${deps.time."0.1.40".winapi}"."ntdef" = true; }
+      { "${deps.time."0.1.40".winapi}"."profileapi" = true; }
+      { "${deps.time."0.1.40".winapi}"."std" = true; }
+      { "${deps.time."0.1.40".winapi}"."sysinfoapi" = true; }
+      { "${deps.time."0.1.40".winapi}"."timezoneapi" = true; }
+      { "${deps.time."0.1.40".winapi}".default = true; }
+    ];
+  }) [
+    (features_.libc."${deps."time"."0.1.40"."libc"}" deps)
+    (features_.redox_syscall."${deps."time"."0.1.40"."redox_syscall"}" deps)
+    (features_.winapi."${deps."time"."0.1.40"."winapi"}" deps)
+  ];
+
+
+  crates.toml."0.4.8" = deps: { features?(features_.toml."0.4.8" deps {}) }: buildRustCrate {
+    crateName = "toml";
+    version = "0.4.8";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1xm3chgsvi3qqi7vj8sb5xvnbfpkqyl4fiwh7y2cl6r4brwlmif1";
+    dependencies = mapFeatures features ([
+      (crates."serde"."${deps."toml"."0.4.8"."serde"}" deps)
+    ]);
+  };
+  features_.toml."0.4.8" = deps: f: updateFeatures f (rec {
+    serde."${deps.toml."0.4.8".serde}".default = true;
+    toml."0.4.8".default = (f.toml."0.4.8".default or true);
+  }) [
+    (features_.serde."${deps."toml"."0.4.8"."serde"}" deps)
+  ];
+
+
+  crates.ucd_util."0.1.1" = deps: { features?(features_.ucd_util."0.1.1" deps {}) }: buildRustCrate {
+    crateName = "ucd-util";
+    version = "0.1.1";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "02a8h3siipx52b832xc8m8rwasj6nx9jpiwfldw8hp6k205hgkn0";
+  };
+  features_.ucd_util."0.1.1" = deps: f: updateFeatures f (rec {
+    ucd_util."0.1.1".default = (f.ucd_util."0.1.1".default or true);
+  }) [];
+
+
+  crates.unicode_width."0.1.5" = deps: { features?(features_.unicode_width."0.1.5" deps {}) }: buildRustCrate {
+    crateName = "unicode-width";
+    version = "0.1.5";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "0886lc2aymwgy0lhavwn6s48ik3c61ykzzd3za6prgnw51j7bi4w";
+    features = mkFeatures (features."unicode_width"."0.1.5" or {});
+  };
+  features_.unicode_width."0.1.5" = deps: f: updateFeatures f (rec {
+    unicode_width."0.1.5".default = (f.unicode_width."0.1.5".default or true);
+  }) [];
+
+
+  crates.unicode_xid."0.1.0" = deps: { features?(features_.unicode_xid."0.1.0" deps {}) }: buildRustCrate {
+    crateName = "unicode-xid";
+    version = "0.1.0";
+    authors = [ "erick.tryzelaar <erick.tryzelaar@gmail.com>" "kwantam <kwantam@gmail.com>" ];
+    sha256 = "05wdmwlfzxhq3nhsxn6wx4q8dhxzzfb9szsz6wiw092m1rjj01zj";
+    features = mkFeatures (features."unicode_xid"."0.1.0" or {});
+  };
+  features_.unicode_xid."0.1.0" = deps: f: updateFeatures f (rec {
+    unicode_xid."0.1.0".default = (f.unicode_xid."0.1.0".default or true);
+  }) [];
+
+
+  crates.utf8_ranges."1.0.1" = deps: { features?(features_.utf8_ranges."1.0.1" deps {}) }: buildRustCrate {
+    crateName = "utf8-ranges";
+    version = "1.0.1";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "1s56ihd2c8ba6191078wivvv59247szaiszrh8x2rxqfsxlfrnpp";
+  };
+  features_.utf8_ranges."1.0.1" = deps: f: updateFeatures f (rec {
+    utf8_ranges."1.0.1".default = (f.utf8_ranges."1.0.1".default or true);
+  }) [];
+
+
+  crates.vcpkg."0.2.6" = deps: { features?(features_.vcpkg."0.2.6" deps {}) }: buildRustCrate {
+    crateName = "vcpkg";
+    version = "0.2.6";
+    authors = [ "Jim McGrath <jimmc2@gmail.com>" ];
+    sha256 = "1ig6jqpzzl1z9vk4qywgpfr4hfbd8ny8frqsgm3r449wkc4n1i5x";
+  };
+  features_.vcpkg."0.2.6" = deps: f: updateFeatures f (rec {
+    vcpkg."0.2.6".default = (f.vcpkg."0.2.6".default or true);
+  }) [];
+
+
+  crates.vec_map."0.8.1" = deps: { features?(features_.vec_map."0.8.1" deps {}) }: buildRustCrate {
+    crateName = "vec_map";
+    version = "0.8.1";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
+    sha256 = "1jj2nrg8h3l53d43rwkpkikq5a5x15ms4rf1rw92hp5lrqhi8mpi";
+    dependencies = mapFeatures features ([
+]);
+    features = mkFeatures (features."vec_map"."0.8.1" or {});
+  };
+  features_.vec_map."0.8.1" = deps: f: updateFeatures f (rec {
+    vec_map = fold recursiveUpdate {} [
+      { "0.8.1".default = (f.vec_map."0.8.1".default or true); }
+      { "0.8.1".serde =
+        (f.vec_map."0.8.1".serde or false) ||
+        (f.vec_map."0.8.1".eders or false) ||
+        (vec_map."0.8.1"."eders" or false); }
+    ];
+  }) [];
+
+
+  crates.version_check."0.1.5" = deps: { features?(features_.version_check."0.1.5" deps {}) }: buildRustCrate {
+    crateName = "version_check";
+    version = "0.1.5";
+    authors = [ "Sergio Benitez <sb@sergio.bz>" ];
+    sha256 = "1yrx9xblmwbafw2firxyqbj8f771kkzfd24n3q7xgwiqyhi0y8qd";
+  };
+  features_.version_check."0.1.5" = deps: f: updateFeatures f (rec {
+    version_check."0.1.5".default = (f.version_check."0.1.5".default or true);
+  }) [];
+
+
+  crates.winapi."0.3.6" = deps: { features?(features_.winapi."0.3.6" deps {}) }: buildRustCrate {
+    crateName = "winapi";
+    version = "0.3.6";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1d9jfp4cjd82sr1q4dgdlrkvm33zhhav9d7ihr0nivqbncr059m4";
+    build = "build.rs";
+    dependencies = (if kernel == "i686-pc-windows-gnu" then mapFeatures features ([
+      (crates."winapi_i686_pc_windows_gnu"."${deps."winapi"."0.3.6"."winapi_i686_pc_windows_gnu"}" deps)
+    ]) else [])
+      ++ (if kernel == "x86_64-pc-windows-gnu" then mapFeatures features ([
+      (crates."winapi_x86_64_pc_windows_gnu"."${deps."winapi"."0.3.6"."winapi_x86_64_pc_windows_gnu"}" deps)
+    ]) else []);
+    features = mkFeatures (features."winapi"."0.3.6" or {});
+  };
+  features_.winapi."0.3.6" = deps: f: updateFeatures f (rec {
+    winapi."0.3.6".default = (f.winapi."0.3.6".default or true);
+    winapi_i686_pc_windows_gnu."${deps.winapi."0.3.6".winapi_i686_pc_windows_gnu}".default = true;
+    winapi_x86_64_pc_windows_gnu."${deps.winapi."0.3.6".winapi_x86_64_pc_windows_gnu}".default = true;
+  }) [
+    (features_.winapi_i686_pc_windows_gnu."${deps."winapi"."0.3.6"."winapi_i686_pc_windows_gnu"}" deps)
+    (features_.winapi_x86_64_pc_windows_gnu."${deps."winapi"."0.3.6"."winapi_x86_64_pc_windows_gnu"}" deps)
+  ];
+
+
+  crates.winapi_i686_pc_windows_gnu."0.4.0" = deps: { features?(features_.winapi_i686_pc_windows_gnu."0.4.0" deps {}) }: buildRustCrate {
+    crateName = "winapi-i686-pc-windows-gnu";
+    version = "0.4.0";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "05ihkij18r4gamjpxj4gra24514can762imjzlmak5wlzidplzrp";
+    build = "build.rs";
+  };
+  features_.winapi_i686_pc_windows_gnu."0.4.0" = deps: f: updateFeatures f (rec {
+    winapi_i686_pc_windows_gnu."0.4.0".default = (f.winapi_i686_pc_windows_gnu."0.4.0".default or true);
+  }) [];
+
+
+  crates.winapi_util."0.1.1" = deps: { features?(features_.winapi_util."0.1.1" deps {}) }: buildRustCrate {
+    crateName = "winapi-util";
+    version = "0.1.1";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "10madanla73aagbklx6y73r2g2vwq9w8a0qcghbbbpn9vfr6a95f";
+    dependencies = (if kernel == "windows" then mapFeatures features ([
+      (crates."winapi"."${deps."winapi_util"."0.1.1"."winapi"}" deps)
+    ]) else []);
+  };
+  features_.winapi_util."0.1.1" = deps: f: updateFeatures f (rec {
+    winapi = fold recursiveUpdate {} [
+      { "${deps.winapi_util."0.1.1".winapi}"."consoleapi" = true; }
+      { "${deps.winapi_util."0.1.1".winapi}"."errhandlingapi" = true; }
+      { "${deps.winapi_util."0.1.1".winapi}"."fileapi" = true; }
+      { "${deps.winapi_util."0.1.1".winapi}"."minwindef" = true; }
+      { "${deps.winapi_util."0.1.1".winapi}"."processenv" = true; }
+      { "${deps.winapi_util."0.1.1".winapi}"."std" = true; }
+      { "${deps.winapi_util."0.1.1".winapi}"."winbase" = true; }
+      { "${deps.winapi_util."0.1.1".winapi}"."wincon" = true; }
+      { "${deps.winapi_util."0.1.1".winapi}"."winerror" = true; }
+      { "${deps.winapi_util."0.1.1".winapi}".default = true; }
+    ];
+    winapi_util."0.1.1".default = (f.winapi_util."0.1.1".default or true);
+  }) [
+    (features_.winapi."${deps."winapi_util"."0.1.1"."winapi"}" deps)
+  ];
+
+
+  crates.winapi_x86_64_pc_windows_gnu."0.4.0" = deps: { features?(features_.winapi_x86_64_pc_windows_gnu."0.4.0" deps {}) }: buildRustCrate {
+    crateName = "winapi-x86_64-pc-windows-gnu";
+    version = "0.4.0";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "0n1ylmlsb8yg1v583i4xy0qmqg42275flvbc51hdqjjfjcl9vlbj";
+    build = "build.rs";
+  };
+  features_.winapi_x86_64_pc_windows_gnu."0.4.0" = deps: f: updateFeatures f (rec {
+    winapi_x86_64_pc_windows_gnu."0.4.0".default = (f.winapi_x86_64_pc_windows_gnu."0.4.0".default or true);
+  }) [];
+
+
+  crates.wincolor."1.0.1" = deps: { features?(features_.wincolor."1.0.1" deps {}) }: buildRustCrate {
+    crateName = "wincolor";
+    version = "1.0.1";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "0gr7v4krmjba7yq16071rfacz42qbapas7mxk5nphjwb042a8gvz";
+    dependencies = mapFeatures features ([
+      (crates."winapi"."${deps."wincolor"."1.0.1"."winapi"}" deps)
+      (crates."winapi_util"."${deps."wincolor"."1.0.1"."winapi_util"}" deps)
+    ]);
+  };
+  features_.wincolor."1.0.1" = deps: f: updateFeatures f (rec {
+    winapi = fold recursiveUpdate {} [
+      { "${deps.wincolor."1.0.1".winapi}"."minwindef" = true; }
+      { "${deps.wincolor."1.0.1".winapi}"."wincon" = true; }
+      { "${deps.wincolor."1.0.1".winapi}".default = true; }
+    ];
+    winapi_util."${deps.wincolor."1.0.1".winapi_util}".default = true;
+    wincolor."1.0.1".default = (f.wincolor."1.0.1".default or true);
+  }) [
+    (features_.winapi."${deps."wincolor"."1.0.1"."winapi"}" deps)
+    (features_.winapi_util."${deps."wincolor"."1.0.1"."winapi_util"}" deps)
+  ];
+
+
+}