
# This file was @generated by crate2nix 0.10.0 with the command:
#   "generate"
# See https://github.com/kolloch/crate2nix for more info.

{ nixpkgs ? <nixpkgs>
, pkgs ? import nixpkgs { config = {}; }
, lib ? pkgs.lib
, stdenv ? pkgs.stdenv
, buildRustCrateForPkgs ? pkgs: pkgs.buildRustCrate
  # This is used as the `crateOverrides` argument for `buildRustCrate`.
, defaultCrateOverrides ? pkgs.defaultCrateOverrides
  # The features to enable for the root_crate or the workspace_members.
, rootFeatures ? [ "default" ]
  # If true, throw errors instead of issueing deprecation warnings.
, strictDeprecation ? false
  # Used for conditional compilation based on CPU feature detection.
, targetFeatures ? []
  # Whether to perform release builds: longer compile times, faster binaries.
, release ? true
  # Additional crate2nix configuration if it exists.
, crateConfig
  ? if builtins.pathExists ./crate-config.nix
    then pkgs.callPackage ./crate-config.nix {}
    else {}
}:

rec {
  #
  # "public" attributes that we attempt to keep stable with new versions of crate2nix.
  #

  rootCrate = rec {
    packageId = "audio_server";

    # Use this attribute to refer to the derivation building your root crate package.
    # You can override the features with rootCrate.build.override { features = [ "default" "feature1" ... ]; }.
    build = internal.buildRustCrateWithFeatures {
      inherit packageId;
    };

    # Debug support which might change between releases.
    # File a bug if you depend on any for non-debug work!
    debug = internal.debugCrate { inherit packageId; };
  };
  # Refer your crate build derivation by name here.
  # You can override the features with
  # workspaceMembers."${crateName}".build.override { features = [ "default" "feature1" ... ]; }.
  workspaceMembers = {
    "audio_server" = rec {
      packageId = "audio_server";
      build = internal.buildRustCrateWithFeatures {
        packageId = "audio_server";
      };

      # Debug support which might change between releases.
      # File a bug if you depend on any for non-debug work!
      debug = internal.debugCrate { inherit packageId; };
    };
  };

  # A derivation that joins the outputs of all workspace members together.
  allWorkspaceMembers = pkgs.symlinkJoin {
      name = "all-workspace-members";
      paths =
        let members = builtins.attrValues workspaceMembers;
        in builtins.map (m: m.build) members;
  };

  #
  # "internal" ("private") attributes that may change in every new version of crate2nix.
  #

  internal = rec {
    # Build and dependency information for crates.
    # Many of the fields are passed one-to-one to buildRustCrate.
    #
    # Noteworthy:
    # * `dependencies`/`buildDependencies`: similar to the corresponding fields for buildRustCrate.
    #   but with additional information which is used during dependency/feature resolution.
    # * `resolvedDependencies`: the selected default features reported by cargo - only included for debugging.
    # * `devDependencies` as of now not used by `buildRustCrate` but used to
    #   inject test dependencies into the build

    crates = {
      "addr2line" = rec {
        crateName = "addr2line";
        version = "0.17.0";
        edition = "2015";
        sha256 = "0sw16zqy6w0ar633z69m7lw6gb0k1y7xj3387a8wly43ij5div5r";
        dependencies = [
          {
            name = "gimli";
            packageId = "gimli";
            usesDefaultFeatures = false;
            features = [ "read" ];
          }
        ];
        features = {
          "alloc" = [ "dep:alloc" ];
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "cpp_demangle" = [ "dep:cpp_demangle" ];
          "default" = [ "rustc-demangle" "cpp_demangle" "std-object" "fallible-iterator" "smallvec" ];
          "fallible-iterator" = [ "dep:fallible-iterator" ];
          "object" = [ "dep:object" ];
          "rustc-demangle" = [ "dep:rustc-demangle" ];
          "rustc-dep-of-std" = [ "core" "alloc" "compiler_builtins" "gimli/rustc-dep-of-std" ];
          "smallvec" = [ "dep:smallvec" ];
          "std" = [ "gimli/std" ];
          "std-object" = [ "std" "object" "object/std" "object/compression" "gimli/endian-reader" ];
        };
      };
      "adler" = rec {
        crateName = "adler";
        version = "1.0.2";
        edition = "2015";
        sha256 = "1zim79cvzd5yrkzl3nyfx0avijwgk9fqv3yrscdy1cc79ih02qpj";
        authors = [
          "Jonas Schievink <jonasschievink@gmail.com>"
        ];
        features = {
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "default" = [ "std" ];
          "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
        };
      };
      "aho-corasick" = rec {
        crateName = "aho-corasick";
        version = "0.7.19";
        edition = "2018";
        sha256 = "0knl5n9f396068qk4zrvhcf01d5qp9ja2my4j7ywny093bcmpxdl";
        libName = "aho_corasick";
        authors = [
          "Andrew Gallant <jamslam@gmail.com>"
        ];
        dependencies = [
          {
            name = "memchr";
            packageId = "memchr";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "default" = [ "std" ];
          "std" = [ "memchr/std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "alsa" = rec {
        crateName = "alsa";
        version = "0.4.1";
        edition = "2018";
        workspace_member = null;
        src = pkgs.fetchgit {
          url = "https://github.com/lopsided98/alsa-rs";
          rev = "c2890f5cf0bfeff0c3c188cdcf8ab5b103634bc1";
          sha256 = "14712g5ydrlna462h3p41v1phc2b2k97a78xcpm39jnqkq6s6943";
        };
        authors = [
          "David Henningsson <diwic@ubuntu.com>"
        ];
        dependencies = [
          {
            name = "alsa-sys";
            packageId = "alsa-sys";
          }
          {
            name = "bitflags";
            packageId = "bitflags";
          }
          {
            name = "libc";
            packageId = "libc";
          }
          {
            name = "nix";
            packageId = "nix";
          }
        ];

      };
      "alsa-sys" = rec {
        crateName = "alsa-sys";
        version = "0.2.0";
        edition = "2018";
        workspace_member = null;
        src = pkgs.fetchgit {
          url = "https://github.com/lopsided98/alsa-sys.git";
          rev = "7f7840651544dbc515d49182d3ce386798e262c4";
          sha256 = "058k14qvr1klmm4qvfawzfncppi478jvslifzk39hildwg9pgn7z";
        };
        authors = [
          "Pierre Krieger <pierre.krieger1708@gmail.com>"
          "David Henningsson <diwic@ubuntu.com>"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
          }
        ];
        buildDependencies = [
          {
            name = "pkg-config";
            packageId = "pkg-config";
          }
        ];

      };
      "anyhow" = rec {
        crateName = "anyhow";
        version = "1.0.66";
        edition = "2018";
        sha256 = "1xj3ahmwjlbiqsajhkaa0q6hqwb4l3l5rkfxa7jk1498r3fn2qi1";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        features = {
          "backtrace" = [ "dep:backtrace" ];
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "async-stream" = rec {
        crateName = "async-stream";
        version = "0.2.1";
        edition = "2018";
        sha256 = "1x8az0155hq0s9fgjf8mws2as6pgfs4sykgxzkp44jai3468q1i2";
        authors = [
          "Carl Lerche <me@carllerche.com>"
        ];
        dependencies = [
          {
            name = "async-stream-impl";
            packageId = "async-stream-impl";
          }
          {
            name = "futures-core";
            packageId = "futures-core";
          }
        ];

      };
      "async-stream-impl" = rec {
        crateName = "async-stream-impl";
        version = "0.2.1";
        edition = "2018";
        sha256 = "0w26845j6l731b1y4i07wll3jj9vadkr2r6cwpvhp1xg70xxpy95";
        procMacro = true;
        authors = [
          "Carl Lerche <me@carllerche.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            features = [ "extra-traits" "full" "visit-mut" ];
          }
        ];

      };
      "async-trait" = rec {
        crateName = "async-trait";
        version = "0.1.58";
        edition = "2018";
        sha256 = "031n0jlf07gn8k3bbfi7klqmzaxi8va4rkr62ijin05mwsa5v00y";
        procMacro = true;
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            features = [ "full" "visit-mut" ];
          }
        ];

      };
      "atty" = rec {
        crateName = "atty";
        version = "0.2.14";
        edition = "2015";
        sha256 = "1s7yslcs6a28c5vz7jwj63lkfgyx8mx99fdirlhi9lbhhzhrpcyr";
        authors = [
          "softprops <d.tangren@gmail.com>"
        ];
        dependencies = [
          {
            name = "hermit-abi";
            packageId = "hermit-abi";
            target = { target, features }: ("hermit" == target."os");
          }
          {
            name = "libc";
            packageId = "libc";
            usesDefaultFeatures = false;
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features = [ "consoleapi" "processenv" "minwinbase" "minwindef" "winbase" ];
          }
        ];

      };
      "audio_server" = rec {
        crateName = "audio_server";
        version = "0.5.0";
        edition = "2018";
        crateBin = [
          {
            name = "audio_server";
            path = "src/main.rs";
            requiredFeatures = [ ];
          }
        ];
        # We can't filter paths with references in Nix 2.4
        # See https://github.com/NixOS/nix/issues/5410
        src = if (lib.versionOlder builtins.nixVersion "2.4pre20211007")
          then lib.cleanSourceWith { filter = sourceFilter;  src = ./.; }
          else ./.;
        authors = [
          "Ben Wolsieffer <benwolsieffer@gmail.com>"
        ];
        dependencies = [
          {
            name = "alsa";
            packageId = "alsa";
          }
          {
            name = "env_logger";
            packageId = "env_logger";
          }
          {
            name = "failure";
            packageId = "failure";
          }
          {
            name = "failure_derive";
            packageId = "failure_derive";
          }
          {
            name = "futures";
            packageId = "futures 0.3.25";
            features = [ "compat" ];
          }
          {
            name = "hostname";
            packageId = "hostname";
          }
          {
            name = "hound";
            packageId = "hound";
          }
          {
            name = "libc";
            packageId = "libc";
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "mio";
            packageId = "mio";
          }
          {
            name = "nix";
            packageId = "nix";
          }
          {
            name = "pin-utils";
            packageId = "pin-utils";
          }
          {
            name = "prost";
            packageId = "prost";
          }
          {
            name = "prost-types";
            packageId = "prost-types";
          }
          {
            name = "regex";
            packageId = "regex";
          }
          {
            name = "serde";
            packageId = "serde";
          }
          {
            name = "serde_derive";
            packageId = "serde_derive";
          }
          {
            name = "serde_yaml";
            packageId = "serde_yaml";
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "macros" "rt-core" "rt-threaded" "io-driver" "process" "blocking" ];
          }
          {
            name = "tonic";
            packageId = "tonic";
          }
        ];
        buildDependencies = [
          {
            name = "tonic-build";
            packageId = "tonic-build";
          }
        ];

      };
      "autocfg" = rec {
        crateName = "autocfg";
        version = "1.1.0";
        edition = "2015";
        sha256 = "1ylp3cb47ylzabimazvbz9ms6ap784zhb6syaz6c1jqpmcmq0s6l";
        authors = [
          "Josh Stone <cuviper@gmail.com>"
        ];

      };
      "backtrace" = rec {
        crateName = "backtrace";
        version = "0.3.66";
        edition = "2018";
        sha256 = "19yrfx0gprqmzphmf6qv32g93w76ny5g751ks1abdkqnsqcl7f6a";
        authors = [
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "addr2line";
            packageId = "addr2line";
            usesDefaultFeatures = false;
          }
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
          {
            name = "libc";
            packageId = "libc";
            usesDefaultFeatures = false;
          }
          {
            name = "miniz_oxide";
            packageId = "miniz_oxide";
            usesDefaultFeatures = false;
          }
          {
            name = "object";
            packageId = "object";
            usesDefaultFeatures = false;
            features = [ "read_core" "elf" "macho" "pe" "unaligned" "archive" ];
          }
          {
            name = "rustc-demangle";
            packageId = "rustc-demangle";
          }
        ];
        buildDependencies = [
          {
            name = "cc";
            packageId = "cc";
          }
        ];
        features = {
          "cpp_demangle" = [ "dep:cpp_demangle" ];
          "default" = [ "std" ];
          "rustc-serialize" = [ "dep:rustc-serialize" ];
          "serde" = [ "dep:serde" ];
          "serialize-rustc" = [ "rustc-serialize" ];
          "serialize-serde" = [ "serde" ];
          "verify-winapi" = [ "winapi/dbghelp" "winapi/handleapi" "winapi/libloaderapi" "winapi/memoryapi" "winapi/minwindef" "winapi/processthreadsapi" "winapi/synchapi" "winapi/tlhelp32" "winapi/winbase" "winapi/winnt" ];
          "winapi" = [ "dep:winapi" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "base64" = rec {
        crateName = "base64";
        version = "0.10.1";
        edition = "2015";
        sha256 = "13k6bvd3n6dm7jqn9x918w65dd9xhx454bqphbnv0bkd6n9dj98b";
        authors = [
          "Alice Maz <alice@alicemaz.com>"
          "Marshall Pierce <marshall@mpierce.org>"
        ];
        dependencies = [
          {
            name = "byteorder";
            packageId = "byteorder";
          }
        ];

      };
      "bitflags" = rec {
        crateName = "bitflags";
        version = "1.3.2";
        edition = "2018";
        sha256 = "12ki6w8gn1ldq7yz9y680llwk5gmrhrzszaa17g1sbrw2r2qvwxy";
        authors = [
          "The Rust Project Developers"
        ];
        features = {
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "byteorder" = rec {
        crateName = "byteorder";
        version = "1.4.3";
        edition = "2018";
        sha256 = "0456lv9xi1a5bcm32arknf33ikv76p3fr9yzki4lb2897p2qkh8l";
        authors = [
          "Andrew Gallant <jamslam@gmail.com>"
        ];
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "bytes 0.5.6" = rec {
        crateName = "bytes";
        version = "0.5.6";
        edition = "2018";
        sha256 = "0f5s7xq6qzmdh22ygsy8v0sp02m51y0radvq4i4y8cizy1lfqk0f";
        authors = [
          "Carl Lerche <me@carllerche.com>"
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        features = {
          "default" = [ "std" ];
          "serde" = [ "dep:serde" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "bytes 1.2.1" = rec {
        crateName = "bytes";
        version = "1.2.1";
        edition = "2018";
        sha256 = "1nsni0jbx1048inbrarn3hz6zxd000pp0rac2mr07s7xf1m7p2pc";
        authors = [
          "Carl Lerche <me@carllerche.com>"
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        features = {
          "default" = [ "std" ];
          "serde" = [ "dep:serde" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "cc" = rec {
        crateName = "cc";
        version = "1.0.76";
        edition = "2018";
        crateBin = [];
        sha256 = "13wjzcry62yqmli0w0v0zlni2qsk8c9igrak4cphkqkg5vd898kn";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        features = {
          "jobserver" = [ "dep:jobserver" ];
          "parallel" = [ "jobserver" ];
        };
      };
      "cfg-if 0.1.10" = rec {
        crateName = "cfg-if";
        version = "0.1.10";
        edition = "2018";
        sha256 = "08h80ihs74jcyp24cd75wwabygbbdgl05k6p5dmq8akbr78vv1a7";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        features = {
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
        };
      };
      "cfg-if 1.0.0" = rec {
        crateName = "cfg-if";
        version = "1.0.0";
        edition = "2018";
        sha256 = "1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        features = {
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
        };
      };
      "either" = rec {
        crateName = "either";
        version = "1.8.0";
        edition = "2018";
        sha256 = "15z70yaivlkpx27vzv99ibf8d2x5jp24yn69y0xi20w86v4c3rch";
        authors = [
          "bluss"
        ];
        features = {
          "default" = [ "use_std" ];
          "serde" = [ "dep:serde" ];
        };
      };
      "env_logger" = rec {
        crateName = "env_logger";
        version = "0.9.3";
        edition = "2018";
        sha256 = "1rq0kqpa8my6i1qcyhfqrn1g9xr5fbkwwbd42nqvlzn9qibncbm1";
        dependencies = [
          {
            name = "atty";
            packageId = "atty";
            optional = true;
          }
          {
            name = "humantime";
            packageId = "humantime";
            optional = true;
          }
          {
            name = "log";
            packageId = "log";
            features = [ "std" ];
          }
          {
            name = "regex";
            packageId = "regex";
            optional = true;
            usesDefaultFeatures = false;
            features = [ "std" "perf" ];
          }
          {
            name = "termcolor";
            packageId = "termcolor";
            optional = true;
          }
        ];
        features = {
          "atty" = [ "dep:atty" ];
          "default" = [ "termcolor" "atty" "humantime" "regex" ];
          "humantime" = [ "dep:humantime" ];
          "regex" = [ "dep:regex" ];
          "termcolor" = [ "dep:termcolor" ];
        };
        resolvedDefaultFeatures = [ "atty" "default" "humantime" "regex" "termcolor" ];
      };
      "failure" = rec {
        crateName = "failure";
        version = "0.1.8";
        edition = "2015";
        sha256 = "11jg1wmbkijrs6bk9fqnbrm9zf0850whnqpgnxyswbn0dk8rnbnk";
        authors = [
          "Without Boats <boats@mozilla.com>"
        ];
        dependencies = [
          {
            name = "backtrace";
            packageId = "backtrace";
            optional = true;
          }
          {
            name = "failure_derive";
            packageId = "failure_derive";
            optional = true;
          }
        ];
        features = {
          "backtrace" = [ "dep:backtrace" ];
          "default" = [ "std" "derive" ];
          "derive" = [ "failure_derive" ];
          "failure_derive" = [ "dep:failure_derive" ];
          "std" = [ "backtrace" ];
        };
        resolvedDefaultFeatures = [ "backtrace" "default" "derive" "failure_derive" "std" ];
      };
      "failure_derive" = rec {
        crateName = "failure_derive";
        version = "0.1.8";
        edition = "2015";
        sha256 = "1936adqqk080439kx2bjf1bds7h89sg6wcif4jw0syndcv3s6kda";
        procMacro = true;
        authors = [
          "Without Boats <woboats@gmail.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
          }
          {
            name = "synstructure";
            packageId = "synstructure";
          }
        ];
        features = {
        };
      };
      "fastrand" = rec {
        crateName = "fastrand";
        version = "1.8.0";
        edition = "2018";
        sha256 = "16b4z2rig7zmyxw1hsiydv89h9wcshilds13dfpc919kmb7hg957";
        authors = [
          "Stjepan Glavina <stjepang@gmail.com>"
        ];
        dependencies = [
          {
            name = "instant";
            packageId = "instant";
            target = { target, features }: ("wasm32" == target."arch");
          }
        ];
        devDependencies = [
          {
            name = "instant";
            packageId = "instant";
            target = {target, features}: ("wasm32" == target."arch");
            features = [ "wasm-bindgen" ];
          }
        ];

      };
      "fixedbitset" = rec {
        crateName = "fixedbitset";
        version = "0.2.0";
        edition = "2015";
        sha256 = "0kg03p777wc0dajd9pvlcnsyrwa8dhqwf0sd9r4dw0p82rs39arp";
        authors = [
          "bluss"
        ];
        features = {
          "default" = [ "std" ];
        };
      };
      "fnv" = rec {
        crateName = "fnv";
        version = "1.0.7";
        edition = "2015";
        sha256 = "1hc2mcqha06aibcaza94vbi81j6pr9a1bbxrxjfhc91zin8yr7iz";
        libPath = "lib.rs";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "fuchsia-zircon" = rec {
        crateName = "fuchsia-zircon";
        version = "0.3.3";
        edition = "2015";
        sha256 = "10jxc5ks1x06gpd0xg51kcjrxr35nj6qhx2zlc5n7bmskv3675rf";
        authors = [
          "Raph Levien <raph@google.com>"
        ];
        dependencies = [
          {
            name = "bitflags";
            packageId = "bitflags";
          }
          {
            name = "fuchsia-zircon-sys";
            packageId = "fuchsia-zircon-sys";
          }
        ];

      };
      "fuchsia-zircon-sys" = rec {
        crateName = "fuchsia-zircon-sys";
        version = "0.3.3";
        edition = "2015";
        sha256 = "19zp2085qsyq2bh1gvcxq1lb8w6v6jj9kbdkhpdjrl95fypakjix";
        authors = [
          "Raph Levien <raph@google.com>"
        ];

      };
      "futures 0.1.31" = rec {
        crateName = "futures";
        version = "0.1.31";
        edition = "2015";
        sha256 = "0y46qbmhi37dqkch8dlfq5aninqpzqgrr98awkb3rn4fxww1lirs";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        features = {
          "default" = [ "use_std" "with-deprecated" ];
        };
        resolvedDefaultFeatures = [ "default" "use_std" "with-deprecated" ];
      };
      "futures 0.3.25" = rec {
        crateName = "futures";
        version = "0.3.25";
        edition = "2018";
        sha256 = "1c0v0lv6fgr95k1nw26n2v9vb40j7k32jg558m8pmhrxfq202f9q";
        dependencies = [
          {
            name = "futures-channel";
            packageId = "futures-channel";
            usesDefaultFeatures = false;
            features = [ "sink" ];
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-executor";
            packageId = "futures-executor";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "futures-io";
            packageId = "futures-io";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-task";
            packageId = "futures-task";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
            features = [ "sink" ];
          }
        ];
        features = {
          "alloc" = [ "futures-core/alloc" "futures-task/alloc" "futures-sink/alloc" "futures-channel/alloc" "futures-util/alloc" ];
          "async-await" = [ "futures-util/async-await" "futures-util/async-await-macro" ];
          "bilock" = [ "futures-util/bilock" ];
          "compat" = [ "std" "futures-util/compat" ];
          "default" = [ "std" "async-await" "executor" ];
          "executor" = [ "std" "futures-executor/std" ];
          "futures-executor" = [ "dep:futures-executor" ];
          "io-compat" = [ "compat" "futures-util/io-compat" ];
          "std" = [ "alloc" "futures-core/std" "futures-task/std" "futures-io/std" "futures-sink/std" "futures-util/std" "futures-util/io" "futures-util/channel" ];
          "thread-pool" = [ "executor" "futures-executor/thread-pool" ];
          "unstable" = [ "futures-core/unstable" "futures-task/unstable" "futures-channel/unstable" "futures-io/unstable" "futures-util/unstable" ];
          "write-all-vectored" = [ "futures-util/write-all-vectored" ];
        };
        resolvedDefaultFeatures = [ "alloc" "async-await" "compat" "default" "executor" "futures-executor" "std" ];
      };
      "futures-channel" = rec {
        crateName = "futures-channel";
        version = "0.3.25";
        edition = "2018";
        sha256 = "1vcyyxwdgh92nl277053zvqd3qpzf6jhb5kibgs0aq95j9d2dfjj";
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
            optional = true;
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "alloc" = [ "futures-core/alloc" ];
          "default" = [ "std" ];
          "futures-sink" = [ "dep:futures-sink" ];
          "sink" = [ "futures-sink" ];
          "std" = [ "alloc" "futures-core/std" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" "futures-sink" "sink" "std" ];
      };
      "futures-core" = rec {
        crateName = "futures-core";
        version = "0.3.25";
        edition = "2018";
        sha256 = "1b6k9fd6bkga9556jyx78di278bdp2p81cls99nawcs6grx9m404";
        features = {
          "default" = [ "std" ];
          "std" = [ "alloc" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" "std" ];
      };
      "futures-executor" = rec {
        crateName = "futures-executor";
        version = "0.3.25";
        edition = "2018";
        sha256 = "1qkll0s12i4ry48yqh08ikl7n8gyz8in2f6zbsmpdh8lczgqbk3s";
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-task";
            packageId = "futures-task";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "default" = [ "std" ];
          "num_cpus" = [ "dep:num_cpus" ];
          "std" = [ "futures-core/std" "futures-task/std" "futures-util/std" ];
          "thread-pool" = [ "std" "num_cpus" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "futures-io" = rec {
        crateName = "futures-io";
        version = "0.3.25";
        edition = "2018";
        sha256 = "1szl4w206x2inliipf5hvjbrd8w8i0gnglz8akmsvp3bl19gpx80";
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "futures-macro" = rec {
        crateName = "futures-macro";
        version = "0.3.25";
        edition = "2018";
        sha256 = "0pc3c5mydmwy50f0whcljcd41f0z1ci0r65dka8r2syqagh8ryxx";
        procMacro = true;
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            features = [ "full" ];
          }
        ];

      };
      "futures-sink" = rec {
        crateName = "futures-sink";
        version = "0.3.25";
        edition = "2018";
        sha256 = "1ygwh57nzinpj2sk6akc6sgavl3njsrjyimvy50dyydalkqmrh9r";
        features = {
          "default" = [ "std" ];
          "std" = [ "alloc" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" "std" ];
      };
      "futures-task" = rec {
        crateName = "futures-task";
        version = "0.3.25";
        edition = "2018";
        sha256 = "1sp6k18py8nv3dmy3j00w83bfmk6fzi7mwzxsflym9nrqlx3kyrg";
        features = {
          "default" = [ "std" ];
          "std" = [ "alloc" ];
        };
        resolvedDefaultFeatures = [ "alloc" "std" ];
      };
      "futures-util" = rec {
        crateName = "futures-util";
        version = "0.3.25";
        edition = "2018";
        sha256 = "1mk5vh8q5bkkvxji8r1nimh87hgi190nz4l4zynrqbxxgac7cxhr";
        dependencies = [
          {
            name = "futures";
            packageId = "futures 0.1.31";
            rename = "futures_01";
            optional = true;
          }
          {
            name = "futures-channel";
            packageId = "futures-channel";
            optional = true;
            usesDefaultFeatures = false;
            features = [ "std" ];
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-io";
            packageId = "futures-io";
            optional = true;
            usesDefaultFeatures = false;
            features = [ "std" ];
          }
          {
            name = "futures-macro";
            packageId = "futures-macro";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "futures-task";
            packageId = "futures-task";
            usesDefaultFeatures = false;
          }
          {
            name = "memchr";
            packageId = "memchr";
            optional = true;
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite 0.2.9";
          }
          {
            name = "pin-utils";
            packageId = "pin-utils";
          }
          {
            name = "slab";
            packageId = "slab";
            optional = true;
          }
        ];
        features = {
          "alloc" = [ "futures-core/alloc" "futures-task/alloc" ];
          "async-await-macro" = [ "async-await" "futures-macro" ];
          "channel" = [ "std" "futures-channel" ];
          "compat" = [ "std" "futures_01" ];
          "default" = [ "std" "async-await" "async-await-macro" ];
          "futures-channel" = [ "dep:futures-channel" ];
          "futures-io" = [ "dep:futures-io" ];
          "futures-macro" = [ "dep:futures-macro" ];
          "futures-sink" = [ "dep:futures-sink" ];
          "futures_01" = [ "dep:futures_01" ];
          "io" = [ "std" "futures-io" "memchr" ];
          "io-compat" = [ "io" "compat" "tokio-io" ];
          "memchr" = [ "dep:memchr" ];
          "sink" = [ "futures-sink" ];
          "slab" = [ "dep:slab" ];
          "std" = [ "alloc" "futures-core/std" "futures-task/std" "slab" ];
          "tokio-io" = [ "dep:tokio-io" ];
          "unstable" = [ "futures-core/unstable" "futures-task/unstable" ];
          "write-all-vectored" = [ "io" ];
        };
        resolvedDefaultFeatures = [ "alloc" "async-await" "async-await-macro" "channel" "compat" "futures-channel" "futures-io" "futures-macro" "futures-sink" "futures_01" "io" "memchr" "sink" "slab" "std" ];
      };
      "getrandom" = rec {
        crateName = "getrandom";
        version = "0.1.16";
        edition = "2018";
        sha256 = "1kjzmz60qx9mn615ks1akjbf36n3lkv27zfwbcam0fzmj56wphwg";
        authors = [
          "The Rand Project Developers"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
          {
            name = "libc";
            packageId = "libc";
            usesDefaultFeatures = false;
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "wasi";
            packageId = "wasi";
            target = { target, features }: ("wasi" == target."os");
          }
        ];
        features = {
          "bindgen" = [ "dep:bindgen" ];
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "js-sys" = [ "dep:js-sys" ];
          "log" = [ "dep:log" ];
          "rustc-dep-of-std" = [ "compiler_builtins" "core" ];
          "stdweb" = [ "dep:stdweb" ];
          "test-in-browser" = [ "wasm-bindgen" ];
          "wasm-bindgen" = [ "bindgen" "js-sys" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "gimli" = rec {
        crateName = "gimli";
        version = "0.26.2";
        edition = "2018";
        sha256 = "0pafbk64rznibgnvfidhm1pqxd14a5s9m50yvsgnbv38b8n0w0r2";
        features = {
          "alloc" = [ "dep:alloc" ];
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "default" = [ "read" "write" "std" "fallible-iterator" "endian-reader" ];
          "endian-reader" = [ "read" "stable_deref_trait" ];
          "fallible-iterator" = [ "dep:fallible-iterator" ];
          "indexmap" = [ "dep:indexmap" ];
          "read" = [ "read-core" ];
          "rustc-dep-of-std" = [ "core" "alloc" "compiler_builtins" ];
          "stable_deref_trait" = [ "dep:stable_deref_trait" ];
          "std" = [ "fallible-iterator/std" "stable_deref_trait/std" ];
          "write" = [ "indexmap" ];
        };
        resolvedDefaultFeatures = [ "read" "read-core" ];
      };
      "h2" = rec {
        crateName = "h2";
        version = "0.2.7";
        edition = "2018";
        sha256 = "0dd5jyxmmy88pdmvag7n41k9z1qs6sliagcyx4jss5292byjhisy";
        authors = [
          "Carl Lerche <me@carllerche.com>"
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 0.5.6";
          }
          {
            name = "fnv";
            packageId = "fnv";
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
          }
          {
            name = "http";
            packageId = "http";
          }
          {
            name = "indexmap";
            packageId = "indexmap";
          }
          {
            name = "slab";
            packageId = "slab";
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "io-util" ];
          }
          {
            name = "tokio-util";
            packageId = "tokio-util 0.3.1";
            features = [ "codec" ];
          }
          {
            name = "tracing";
            packageId = "tracing";
            usesDefaultFeatures = false;
            features = [ "std" "log" ];
          }
          {
            name = "tracing-futures";
            packageId = "tracing-futures";
            usesDefaultFeatures = false;
            features = [ "std-future" ];
          }
        ];
        devDependencies = [
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "dns" "macros" "rt-core" "sync" "tcp" ];
          }
        ];
        features = {
        };
      };
      "hashbrown" = rec {
        crateName = "hashbrown";
        version = "0.12.3";
        edition = "2021";
        sha256 = "1268ka4750pyg2pbgsr43f0289l5zah4arir2k4igx5a8c6fg7la";
        authors = [
          "Amanieu d'Antras <amanieu@gmail.com>"
        ];
        features = {
          "ahash" = [ "dep:ahash" ];
          "ahash-compile-time-rng" = [ "ahash/compile-time-rng" ];
          "alloc" = [ "dep:alloc" ];
          "bumpalo" = [ "dep:bumpalo" ];
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "default" = [ "ahash" "inline-more" ];
          "rayon" = [ "dep:rayon" ];
          "rustc-dep-of-std" = [ "nightly" "core" "compiler_builtins" "alloc" "rustc-internal-api" ];
          "serde" = [ "dep:serde" ];
        };
        resolvedDefaultFeatures = [ "raw" ];
      };
      "heck" = rec {
        crateName = "heck";
        version = "0.3.3";
        edition = "2018";
        sha256 = "0b0kkr790p66lvzn9nsmfjvydrbmh9z5gb664jchwgw64vxiwqkd";
        authors = [
          "Without Boats <woboats@gmail.com>"
        ];
        dependencies = [
          {
            name = "unicode-segmentation";
            packageId = "unicode-segmentation";
          }
        ];

      };
      "hermit-abi" = rec {
        crateName = "hermit-abi";
        version = "0.1.19";
        edition = "2018";
        sha256 = "0cxcm8093nf5fyn114w8vxbrbcyvv91d4015rdnlgfll7cs6gd32";
        authors = [
          "Stefan Lankes"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "rustc-dep-of-std" = [ "core" "compiler_builtins/rustc-dep-of-std" "libc/rustc-dep-of-std" ];
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "hostname" = rec {
        crateName = "hostname";
        version = "0.3.1";
        edition = "2015";
        sha256 = "0rz8yf70cvzl3nry71m4bz9w6x4j9kdz3qng6pnwhk2h20z1qwrw";
        authors = [
          "fengcen <fengcen.love@gmail.com>"
          "svartalf <self@svartalf.info>"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: ((target."unix" or false) || ("redox" == target."os"));
          }
          {
            name = "match_cfg";
            packageId = "match_cfg";
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: ("windows" == target."os");
            features = [ "sysinfoapi" ];
          }
        ];
        features = {
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "hound" = rec {
        crateName = "hound";
        version = "3.5.0";
        edition = "2015";
        sha256 = "1cadkxzdsb3bxwzri6r6l78a1jy9j0jxrfwmh34gjadvbnyws4sd";
        authors = [
          "Ruud van Asseldonk <dev@veniogames.com>"
        ];

      };
      "http" = rec {
        crateName = "http";
        version = "0.2.8";
        edition = "2018";
        sha256 = "1693pkg43czk26fima0l0l5h2h9rvm8n84pff5zc35b9w90kvx3m";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
          "Carl Lerche <me@carllerche.com>"
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 1.2.1";
          }
          {
            name = "fnv";
            packageId = "fnv";
          }
          {
            name = "itoa";
            packageId = "itoa 1.0.4";
          }
        ];

      };
      "http-body" = rec {
        crateName = "http-body";
        version = "0.3.1";
        edition = "2018";
        sha256 = "06qi0ni45lb92w3ml260c0bxbq5zd4snjmz0a9k69xq6021zzm8k";
        authors = [
          "Carl Lerche <me@carllerche.com>"
          "Lucio Franco <luciofranco14@gmail.com>"
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 0.5.6";
          }
          {
            name = "http";
            packageId = "http";
          }
        ];

      };
      "httparse" = rec {
        crateName = "httparse";
        version = "1.8.0";
        edition = "2018";
        sha256 = "010rrfahm1jss3p022fqf3j3jmm72vhn4iqhykahb9ynpaag75yq";
        authors = [
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "httpdate" = rec {
        crateName = "httpdate";
        version = "0.3.2";
        edition = "2015";
        sha256 = "0izbd3sf0625wm4rrfv85xa4xa8j4n1ldxhwlkgff4cm6rh4sjs9";
        authors = [
          "Pyfisch <pyfisch@gmail.com>"
        ];
        features = {
        };
      };
      "humantime" = rec {
        crateName = "humantime";
        version = "2.1.0";
        edition = "2018";
        sha256 = "1r55pfkkf5v0ji1x6izrjwdq9v6sc7bv99xj6srywcar37xmnfls";
        authors = [
          "Paul Colomiets <paul@colomiets.name>"
        ];

      };
      "hyper" = rec {
        crateName = "hyper";
        version = "0.13.10";
        edition = "2018";
        sha256 = "1fwndqc3glvzg7vna3aaf5pdkkdm3422ayc6z393w2krcmq1avwa";
        authors = [
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 0.5.6";
          }
          {
            name = "futures-channel";
            packageId = "futures-channel";
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
          }
          {
            name = "h2";
            packageId = "h2";
          }
          {
            name = "http";
            packageId = "http";
          }
          {
            name = "http-body";
            packageId = "http-body";
          }
          {
            name = "httparse";
            packageId = "httparse";
          }
          {
            name = "httpdate";
            packageId = "httpdate";
          }
          {
            name = "itoa";
            packageId = "itoa 0.4.8";
          }
          {
            name = "pin-project";
            packageId = "pin-project 1.0.12";
          }
          {
            name = "socket2";
            packageId = "socket2";
            optional = true;
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "sync" ];
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
          {
            name = "tracing";
            packageId = "tracing";
            usesDefaultFeatures = false;
            features = [ "log" "std" ];
          }
          {
            name = "want";
            packageId = "want";
          }
        ];
        devDependencies = [
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
            features = [ "alloc" ];
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "fs" "macros" "io-std" "rt-util" "sync" "time" "test-util" ];
          }
        ];
        features = {
          "default" = [ "runtime" "stream" ];
          "runtime" = [ "tcp" "tokio/rt-core" ];
          "socket2" = [ "dep:socket2" ];
          "tcp" = [ "socket2" "tokio/blocking" "tokio/tcp" "tokio/time" ];
        };
        resolvedDefaultFeatures = [ "default" "runtime" "socket2" "stream" "tcp" ];
      };
      "indexmap" = rec {
        crateName = "indexmap";
        version = "1.9.1";
        edition = "2021";
        sha256 = "07nli1wcz7m81svvig8l5j6vjycjnv9va46lwblgy803ffbmm8qh";
        dependencies = [
          {
            name = "hashbrown";
            packageId = "hashbrown";
            usesDefaultFeatures = false;
            features = [ "raw" ];
          }
        ];
        buildDependencies = [
          {
            name = "autocfg";
            packageId = "autocfg";
          }
        ];
        features = {
          "rayon" = [ "dep:rayon" ];
          "rustc-rayon" = [ "dep:rustc-rayon" ];
          "serde" = [ "dep:serde" ];
          "serde-1" = [ "serde" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "instant" = rec {
        crateName = "instant";
        version = "0.1.12";
        edition = "2018";
        sha256 = "0b2bx5qdlwayriidhrag8vhy10kdfimfhmb3jnjmsz2h9j1bwnvs";
        authors = [
          "sebcrozet <developer@crozet.re>"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
        ];
        features = {
          "js-sys" = [ "dep:js-sys" ];
          "stdweb" = [ "dep:stdweb" ];
          "wasm-bindgen" = [ "js-sys" "wasm-bindgen_rs" "web-sys" ];
          "wasm-bindgen_rs" = [ "dep:wasm-bindgen_rs" ];
          "web-sys" = [ "dep:web-sys" ];
        };
      };
      "iovec" = rec {
        crateName = "iovec";
        version = "0.1.4";
        edition = "2015";
        sha256 = "0ph73qygwx8i0mblrf110cj59l00gkmsgrpzz1rm85syz5pymcxj";
        authors = [
          "Carl Lerche <me@carllerche.com>"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."unix" or false);
          }
        ];

      };
      "itertools" = rec {
        crateName = "itertools";
        version = "0.8.2";
        edition = "2015";
        sha256 = "1154j48aw913v5jnyhpxialxhdn2sfpl4d7bwididyb1r05jsspm";
        authors = [
          "bluss"
        ];
        dependencies = [
          {
            name = "either";
            packageId = "either";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "default" = [ "use_std" ];
        };
        resolvedDefaultFeatures = [ "default" "use_std" ];
      };
      "itoa 0.4.8" = rec {
        crateName = "itoa";
        version = "0.4.8";
        edition = "2015";
        sha256 = "1m1dairwyx8kfxi7ab3b5jc71z1vigh9w4shnhiajji9avzr26dp";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "itoa 1.0.4" = rec {
        crateName = "itoa";
        version = "1.0.4";
        edition = "2018";
        sha256 = "1k2y06z87wjxda4v751ybf7n9q4kwl9ly9jffa78vpxs3qsas5s2";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        features = {
          "no-panic" = [ "dep:no-panic" ];
        };
      };
      "kernel32-sys" = rec {
        crateName = "kernel32-sys";
        version = "0.2.2";
        edition = "2015";
        sha256 = "1389av0601a9yz8dvx5zha9vmkd6ik7ax0idpb032d28555n41vm";
        libName = "kernel32";
        authors = [
          "Peter Atashian <retep998@gmail.com>"
        ];
        dependencies = [
          {
            name = "winapi";
            packageId = "winapi 0.2.8";
          }
        ];
        buildDependencies = [
          {
            name = "winapi-build";
            packageId = "winapi-build";
          }
        ];

      };
      "lazy_static" = rec {
        crateName = "lazy_static";
        version = "1.4.0";
        edition = "2015";
        sha256 = "0in6ikhw8mgl33wjv6q6xfrb5b9jr16q8ygjy803fay4zcisvaz2";
        authors = [
          "Marvin Löbel <loebel.marvin@gmail.com>"
        ];
        features = {
          "spin" = [ "dep:spin" ];
          "spin_no_std" = [ "spin" ];
        };
      };
      "libc" = rec {
        crateName = "libc";
        version = "0.2.137";
        edition = "2015";
        sha256 = "12dz2lk4a7lm03k079n2rkm1l6cpdhvy6nrngbfprzrv19icqzzw";
        authors = [
          "The Rust Project Developers"
        ];
        features = {
          "default" = [ "std" ];
          "rustc-dep-of-std" = [ "align" "rustc-std-workspace-core" ];
          "rustc-std-workspace-core" = [ "dep:rustc-std-workspace-core" ];
          "use_std" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "align" "default" "extra_traits" "std" ];
      };
      "log" = rec {
        crateName = "log";
        version = "0.4.17";
        edition = "2015";
        sha256 = "0biqlaaw1lsr8bpnmbcc0fvgjj34yy79ghqzyi0ali7vgil2xcdb";
        authors = [
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
        ];
        features = {
          "kv_unstable" = [ "value-bag" ];
          "kv_unstable_serde" = [ "kv_unstable_std" "value-bag/serde" "serde" ];
          "kv_unstable_std" = [ "std" "kv_unstable" "value-bag/error" ];
          "kv_unstable_sval" = [ "kv_unstable" "value-bag/sval" "sval" ];
          "serde" = [ "dep:serde" ];
          "sval" = [ "dep:sval" ];
          "value-bag" = [ "dep:value-bag" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "match_cfg" = rec {
        crateName = "match_cfg";
        version = "0.1.0";
        edition = "2015";
        sha256 = "1r5j3zqc3qr8ybcx95bk8q57mkizmgmffj5lmicd4i8d9riyigpz";
        authors = [
          "gnzlbg <gonzalobg88@gmail.com>"
        ];
        features = {
          "default" = [ "use_core" ];
        };
        resolvedDefaultFeatures = [ "default" "use_core" ];
      };
      "memchr" = rec {
        crateName = "memchr";
        version = "2.5.0";
        edition = "2018";
        sha256 = "0vanfk5mzs1g1syqnj03q8n0syggnhn55dq535h2wxr7rwpfbzrd";
        authors = [
          "Andrew Gallant <jamslam@gmail.com>"
          "bluss"
        ];
        features = {
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "default" = [ "std" ];
          "libc" = [ "dep:libc" ];
          "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
          "use_std" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "miniz_oxide" = rec {
        crateName = "miniz_oxide";
        version = "0.5.4";
        edition = "2018";
        sha256 = "0d2xcypr8s0skd81dhlrylas1j794qyz74snm11jc8kmy6l0nncn";
        authors = [
          "Frommi <daniil.liferenko@gmail.com>"
          "oyvindln <oyvindln@users.noreply.github.com>"
        ];
        dependencies = [
          {
            name = "adler";
            packageId = "adler";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "alloc" = [ "dep:alloc" ];
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "rustc-dep-of-std" = [ "core" "alloc" "compiler_builtins" "adler/rustc-dep-of-std" ];
          "simd" = [ "simd-adler32" ];
          "simd-adler32" = [ "dep:simd-adler32" ];
        };
      };
      "mio" = rec {
        crateName = "mio";
        version = "0.6.23";
        edition = "2015";
        sha256 = "1i2c1vl8lr45apkh8xbh9k56ihfsmqff5l7s2fya7whvp7sndzaa";
        authors = [
          "Carl Lerche <me@carllerche.com>"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 0.1.10";
          }
          {
            name = "fuchsia-zircon";
            packageId = "fuchsia-zircon";
            target = { target, features }: ("fuchsia" == target."os");
          }
          {
            name = "fuchsia-zircon-sys";
            packageId = "fuchsia-zircon-sys";
            target = { target, features }: ("fuchsia" == target."os");
          }
          {
            name = "iovec";
            packageId = "iovec";
          }
          {
            name = "kernel32-sys";
            packageId = "kernel32-sys";
            target = { target, features }: (target."windows" or false);
          }
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "miow";
            packageId = "miow 0.2.2";
            target = { target, features }: (target."windows" or false);
          }
          {
            name = "net2";
            packageId = "net2";
          }
          {
            name = "slab";
            packageId = "slab";
          }
          {
            name = "winapi";
            packageId = "winapi 0.2.8";
            target = { target, features }: (target."windows" or false);
          }
        ];
        features = {
          "default" = [ "with-deprecated" ];
        };
        resolvedDefaultFeatures = [ "default" "with-deprecated" ];
      };
      "mio-named-pipes" = rec {
        crateName = "mio-named-pipes";
        version = "0.1.7";
        edition = "2018";
        sha256 = "0mjnjcg5dkb2jwxh4zxx4fgp15wr3hj9r53z4hdm4pnm1z2w2h08";
        authors = [
          "Brendan Molloy <brendan@bbqsrc.net>"
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        dependencies = [
          {
            name = "log";
            packageId = "log";
            target = { target, features }: (target."windows" or false);
          }
          {
            name = "mio";
            packageId = "mio";
            target = { target, features }: (target."windows" or false);
          }
          {
            name = "miow";
            packageId = "miow 0.3.7";
            target = { target, features }: (target."windows" or false);
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features = [ "winerror" "ioapiset" "minwinbase" "winbase" ];
          }
        ];

      };
      "mio-uds" = rec {
        crateName = "mio-uds";
        version = "0.6.8";
        edition = "2015";
        sha256 = "1w36w09gd8as1mah80wdy0kgpshmphmljj68gij34hvdnag6kjxg";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        dependencies = [
          {
            name = "iovec";
            packageId = "iovec";
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "mio";
            packageId = "mio";
            target = { target, features }: (target."unix" or false);
          }
        ];

      };
      "miow 0.2.2" = rec {
        crateName = "miow";
        version = "0.2.2";
        edition = "2015";
        sha256 = "0kcl8rnv0bhiarcdakik670w8fnxzlxhi1ys7152sck68510in7b";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        dependencies = [
          {
            name = "kernel32-sys";
            packageId = "kernel32-sys";
          }
          {
            name = "net2";
            packageId = "net2";
            usesDefaultFeatures = false;
          }
          {
            name = "winapi";
            packageId = "winapi 0.2.8";
          }
          {
            name = "ws2_32-sys";
            packageId = "ws2_32-sys";
          }
        ];

      };
      "miow 0.3.7" = rec {
        crateName = "miow";
        version = "0.3.7";
        edition = "2018";
        sha256 = "08afp2xfpxmdw003111lxz6g9jgbj4zi2fpldvv7da6d4nqcbwdr";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        dependencies = [
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            features = [ "std" "fileapi" "handleapi" "ioapiset" "minwindef" "namedpipeapi" "ntdef" "synchapi" "winerror" "winsock2" "ws2def" "ws2ipdef" ];
          }
        ];

      };
      "multimap" = rec {
        crateName = "multimap";
        version = "0.8.3";
        edition = "2015";
        sha256 = "0sicyz4n500vdhgcxn4g8jz97cp1ijir1rnbgph3pmx9ckz4dkp5";
        authors = [
          "Håvar Nøvik <havar.novik@gmail.com>"
        ];
        features = {
          "default" = [ "serde_impl" ];
          "serde" = [ "dep:serde" ];
          "serde_impl" = [ "serde" ];
        };
      };
      "net2" = rec {
        crateName = "net2";
        version = "0.2.38";
        edition = "2015";
        sha256 = "0cf66y4415qc1i9sr0rrn9my5f1pgxzf3xllwsr309fdrycxzl3l";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 0.1.10";
          }
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: ((target."unix" or false) || ("wasi" == target."os"));
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features = [ "handleapi" "winsock2" "ws2def" "ws2ipdef" "ws2tcpip" ];
          }
        ];
        features = {
          "default" = [ "duration" ];
        };
        resolvedDefaultFeatures = [ "default" "duration" ];
      };
      "nix" = rec {
        crateName = "nix";
        version = "0.15.0";
        edition = "2015";
        sha256 = "0aa2l7wg9pzx24ks4p97gdy09a4hhs1sr9drxnm75v906d7hnbiv";
        authors = [
          "The nix-rust Project Developers"
        ];
        dependencies = [
          {
            name = "bitflags";
            packageId = "bitflags";
          }
          {
            name = "cfg-if";
            packageId = "cfg-if 0.1.10";
          }
          {
            name = "libc";
            packageId = "libc";
            features = [ "extra_traits" ];
          }
          {
            name = "void";
            packageId = "void";
          }
        ];
        buildDependencies = [
          {
            name = "cc";
            packageId = "cc";
            target = {target, features}: ("dragonfly" == target."os");
          }
        ];

      };
      "num_cpus" = rec {
        crateName = "num_cpus";
        version = "1.14.0";
        edition = "2015";
        sha256 = "1xfyz6qfmcgnlgzk4889hdndp1l2pkry8l5iq8my0wac69j8w1gn";
        authors = [
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        dependencies = [
          {
            name = "hermit-abi";
            packageId = "hermit-abi";
            target = { target, features }: ((("x86_64" == target."arch") || ("aarch64" == target."arch")) && ("hermit" == target."os"));
          }
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (!(target."windows" or false));
          }
        ];

      };
      "object" = rec {
        crateName = "object";
        version = "0.29.0";
        edition = "2018";
        sha256 = "0lzblxwxcih7j4z2cfx9094caax97hlfm9n0y5hlavda6cn8n591";
        dependencies = [
          {
            name = "memchr";
            packageId = "memchr";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "all" = [ "read" "write" "std" "compression" "wasm" ];
          "alloc" = [ "dep:alloc" ];
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "compression" = [ "flate2" "std" ];
          "core" = [ "dep:core" ];
          "crc32fast" = [ "dep:crc32fast" ];
          "default" = [ "read" "compression" ];
          "doc" = [ "read_core" "write_std" "std" "compression" "archive" "coff" "elf" "macho" "pe" "wasm" ];
          "flate2" = [ "dep:flate2" ];
          "hashbrown" = [ "dep:hashbrown" ];
          "indexmap" = [ "dep:indexmap" ];
          "pe" = [ "coff" ];
          "read" = [ "read_core" "archive" "coff" "elf" "macho" "pe" "unaligned" ];
          "rustc-dep-of-std" = [ "core" "compiler_builtins" "alloc" "memchr/rustc-dep-of-std" ];
          "std" = [ "memchr/std" ];
          "wasm" = [ "wasmparser" ];
          "wasmparser" = [ "dep:wasmparser" ];
          "write" = [ "write_std" "coff" "elf" "macho" "pe" ];
          "write_core" = [ "crc32fast" "indexmap" "hashbrown" ];
          "write_std" = [ "write_core" "std" "indexmap/std" "crc32fast/std" ];
        };
        resolvedDefaultFeatures = [ "archive" "coff" "elf" "macho" "pe" "read_core" "unaligned" ];
      };
      "once_cell" = rec {
        crateName = "once_cell";
        version = "1.16.0";
        edition = "2021";
        sha256 = "0q3q5fpalz6a0db25y75709g9x8g2yzyih888p3xp7krpzab1w46";
        authors = [
          "Aleksey Kladov <aleksey.kladov@gmail.com>"
        ];
        features = {
          "alloc" = [ "race" ];
          "atomic-polyfill" = [ "critical-section" ];
          "atomic_polyfill" = [ "dep:atomic_polyfill" ];
          "critical-section" = [ "critical_section" "atomic_polyfill" ];
          "critical_section" = [ "dep:critical_section" ];
          "default" = [ "std" ];
          "parking_lot" = [ "parking_lot_core" ];
          "parking_lot_core" = [ "dep:parking_lot_core" ];
          "std" = [ "alloc" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" "race" "std" ];
      };
      "percent-encoding" = rec {
        crateName = "percent-encoding";
        version = "1.0.1";
        edition = "2015";
        sha256 = "0cgq08v1fvr6bs5fvy390cz830lq4fak8havdasdacxcw790s09i";
        libPath = "lib.rs";
        authors = [
          "The rust-url developers"
        ];

      };
      "petgraph" = rec {
        crateName = "petgraph";
        version = "0.5.1";
        edition = "2018";
        sha256 = "1dzxda6z17sfxly11m8ja3iargh73pw0s1sdgjyp0qp5dm51cza6";
        authors = [
          "bluss"
          "mitchmindtree"
        ];
        dependencies = [
          {
            name = "fixedbitset";
            packageId = "fixedbitset";
            usesDefaultFeatures = false;
          }
          {
            name = "indexmap";
            packageId = "indexmap";
          }
        ];
        features = {
          "all" = [ "unstable" "quickcheck" "matrix_graph" "stable_graph" "graphmap" ];
          "default" = [ "graphmap" "stable_graph" "matrix_graph" ];
          "quickcheck" = [ "dep:quickcheck" ];
          "serde" = [ "dep:serde" ];
          "serde-1" = [ "serde" "serde_derive" ];
          "serde_derive" = [ "dep:serde_derive" ];
          "unstable" = [ "generate" ];
        };
      };
      "pin-project 0.4.30" = rec {
        crateName = "pin-project";
        version = "0.4.30";
        edition = "2018";
        sha256 = "0nlxmsiq39bc73iryh92yslrp2jzlkdjjxd7rv5sjzpflljgkw1y";
        dependencies = [
          {
            name = "pin-project-internal";
            packageId = "pin-project-internal 0.4.30";
            usesDefaultFeatures = false;
          }
        ];

      };
      "pin-project 1.0.12" = rec {
        crateName = "pin-project";
        version = "1.0.12";
        edition = "2018";
        sha256 = "1k3f9jkia3idxl2pqxamszwnl89dk52fa4jqj3p7zmmwnq4scadd";
        dependencies = [
          {
            name = "pin-project-internal";
            packageId = "pin-project-internal 1.0.12";
          }
        ];

      };
      "pin-project-internal 0.4.30" = rec {
        crateName = "pin-project-internal";
        version = "0.4.30";
        edition = "2018";
        sha256 = "07p6mwz6kz317a6n3p93yk4llj939ihqdz7d1mwl7gmyx468s745";
        procMacro = true;
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            features = [ "full" "visit-mut" ];
          }
        ];

      };
      "pin-project-internal 1.0.12" = rec {
        crateName = "pin-project-internal";
        version = "1.0.12";
        edition = "2018";
        sha256 = "0maa6icn7rdfy4xvgfaq7m7bwpw9f19wg76f1ncsiixd0lgdp6q6";
        procMacro = true;
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            features = [ "full" "visit-mut" ];
          }
        ];

      };
      "pin-project-lite 0.1.12" = rec {
        crateName = "pin-project-lite";
        version = "0.1.12";
        edition = "2018";
        sha256 = "0xx7f3wzc8ydvd1v2mmrxfypjchp52bphrirf08phbq8ba8n8yr5";
        authors = [
          "Taiki Endo <te316e89@gmail.com>"
        ];

      };
      "pin-project-lite 0.2.9" = rec {
        crateName = "pin-project-lite";
        version = "0.2.9";
        edition = "2018";
        sha256 = "05n1z851l356hpgqadw4ar64mjanaxq1qlwqsf2k05ziq8xax9z0";

      };
      "pin-utils" = rec {
        crateName = "pin-utils";
        version = "0.1.0";
        edition = "2018";
        sha256 = "117ir7vslsl2z1a7qzhws4pd01cg2d3338c47swjyvqv2n60v1wb";
        authors = [
          "Josef Brandl <mail@josefbrandl.de>"
        ];

      };
      "pkg-config" = rec {
        crateName = "pkg-config";
        version = "0.3.26";
        edition = "2015";
        sha256 = "0q2i61dhqvawc51zfzl3jich57w0cjgfa894hn6ings7ffgsbjba";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];

      };
      "ppv-lite86" = rec {
        crateName = "ppv-lite86";
        version = "0.2.17";
        edition = "2018";
        sha256 = "1pp6g52aw970adv3x2310n7glqnji96z0a9wiamzw89ibf0ayh2v";
        authors = [
          "The CryptoCorrosion Contributors"
        ];
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "simd" "std" ];
      };
      "proc-macro2" = rec {
        crateName = "proc-macro2";
        version = "1.0.47";
        edition = "2018";
        sha256 = "09g7alc7mlbycsadfh7lwskr1qfxbiic9qp9z751cqz3n04dk8sy";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        dependencies = [
          {
            name = "unicode-ident";
            packageId = "unicode-ident";
          }
        ];
        features = {
          "default" = [ "proc-macro" ];
        };
        resolvedDefaultFeatures = [ "default" "proc-macro" ];
      };
      "prost" = rec {
        crateName = "prost";
        version = "0.6.1";
        edition = "2018";
        sha256 = "04n2i5ryhi5pwl524pxmfxv5z6l5s9xwf9r9wdfs8i311bzawjff";
        authors = [
          "Dan Burkert <dan@danburkert.com>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 0.5.6";
          }
          {
            name = "prost-derive";
            packageId = "prost-derive";
            optional = true;
          }
        ];
        features = {
          "default" = [ "prost-derive" ];
          "prost-derive" = [ "dep:prost-derive" ];
        };
        resolvedDefaultFeatures = [ "default" "prost-derive" ];
      };
      "prost-build" = rec {
        crateName = "prost-build";
        version = "0.6.1";
        edition = "2018";
        sha256 = "09iggxnikpawp7bw2gvpq1v8c6prmv1kb18f6mlvvv0kr5w0dc82";
        authors = [
          "Dan Burkert <dan@danburkert.com>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 0.5.6";
          }
          {
            name = "heck";
            packageId = "heck";
          }
          {
            name = "itertools";
            packageId = "itertools";
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "multimap";
            packageId = "multimap";
            usesDefaultFeatures = false;
          }
          {
            name = "petgraph";
            packageId = "petgraph";
            usesDefaultFeatures = false;
          }
          {
            name = "prost";
            packageId = "prost";
          }
          {
            name = "prost-types";
            packageId = "prost-types";
          }
          {
            name = "tempfile";
            packageId = "tempfile";
          }
        ];
        buildDependencies = [
          {
            name = "which";
            packageId = "which";
            usesDefaultFeatures = false;
          }
        ];

      };
      "prost-derive" = rec {
        crateName = "prost-derive";
        version = "0.6.1";
        edition = "2018";
        sha256 = "0wlgn7nbb3x79xdlxkg47m05gxw6cd302hzc5yhi1pmcjnds2yjk";
        procMacro = true;
        authors = [
          "Dan Burkert <dan@danburkert.com>"
        ];
        dependencies = [
          {
            name = "anyhow";
            packageId = "anyhow";
          }
          {
            name = "itertools";
            packageId = "itertools";
          }
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            features = [ "extra-traits" ];
          }
        ];

      };
      "prost-types" = rec {
        crateName = "prost-types";
        version = "0.6.1";
        edition = "2018";
        sha256 = "1ahp6j6b62zfv1d0hfns5rs8k76xgbv7dgkm9cq03h4p0rygcd0q";
        authors = [
          "Dan Burkert <dan@danburkert.com>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 0.5.6";
          }
          {
            name = "prost";
            packageId = "prost";
          }
        ];

      };
      "quote" = rec {
        crateName = "quote";
        version = "1.0.21";
        edition = "2018";
        sha256 = "0yai5cyd9h95n7hkwjcx8ig3yv0hindmz5gm60g9dmm7fzrlir5v";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "default" = [ "proc-macro" ];
          "proc-macro" = [ "proc-macro2/proc-macro" ];
        };
        resolvedDefaultFeatures = [ "default" "proc-macro" ];
      };
      "rand" = rec {
        crateName = "rand";
        version = "0.7.3";
        edition = "2018";
        sha256 = "00sdaimkbz491qgi6qxkv582yivl32m2jd401kzbn94vsiwicsva";
        authors = [
          "The Rand Project Developers"
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "getrandom";
            packageId = "getrandom";
            rename = "getrandom_package";
            optional = true;
          }
          {
            name = "libc";
            packageId = "libc";
            optional = true;
            usesDefaultFeatures = false;
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "rand_chacha";
            packageId = "rand_chacha";
            usesDefaultFeatures = false;
            target = { target, features }: (!("emscripten" == target."os"));
          }
          {
            name = "rand_core";
            packageId = "rand_core";
          }
          {
            name = "rand_hc";
            packageId = "rand_hc";
            target = { target, features }: ("emscripten" == target."os");
          }
          {
            name = "rand_pcg";
            packageId = "rand_pcg";
            optional = true;
          }
        ];
        devDependencies = [
          {
            name = "rand_hc";
            packageId = "rand_hc";
          }
          {
            name = "rand_pcg";
            packageId = "rand_pcg";
          }
        ];
        features = {
          "alloc" = [ "rand_core/alloc" ];
          "default" = [ "std" ];
          "getrandom" = [ "getrandom_package" "rand_core/getrandom" ];
          "getrandom_package" = [ "dep:getrandom_package" ];
          "libc" = [ "dep:libc" ];
          "log" = [ "dep:log" ];
          "nightly" = [ "simd_support" ];
          "packed_simd" = [ "dep:packed_simd" ];
          "rand_pcg" = [ "dep:rand_pcg" ];
          "simd_support" = [ "packed_simd" ];
          "small_rng" = [ "rand_pcg" ];
          "std" = [ "rand_core/std" "rand_chacha/std" "alloc" "getrandom" "libc" ];
          "stdweb" = [ "getrandom_package/stdweb" ];
          "wasm-bindgen" = [ "getrandom_package/wasm-bindgen" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" "getrandom" "getrandom_package" "libc" "rand_pcg" "small_rng" "std" ];
      };
      "rand_chacha" = rec {
        crateName = "rand_chacha";
        version = "0.2.2";
        edition = "2018";
        sha256 = "00il36fkdbsmpr99p9ksmmp6dn1md7rmnwmz0rr77jbrca2yvj7l";
        authors = [
          "The Rand Project Developers"
          "The Rust Project Developers"
          "The CryptoCorrosion Contributors"
        ];
        dependencies = [
          {
            name = "ppv-lite86";
            packageId = "ppv-lite86";
            usesDefaultFeatures = false;
            features = [ "simd" ];
          }
          {
            name = "rand_core";
            packageId = "rand_core";
          }
        ];
        features = {
          "default" = [ "std" "simd" ];
          "std" = [ "ppv-lite86/std" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "rand_core" = rec {
        crateName = "rand_core";
        version = "0.5.1";
        edition = "2018";
        sha256 = "06bdvx08v3rkz451cm7z59xwwqn1rkfh6v9ay77b14f8dwlybgch";
        authors = [
          "The Rand Project Developers"
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "getrandom";
            packageId = "getrandom";
            optional = true;
          }
        ];
        features = {
          "getrandom" = [ "dep:getrandom" ];
          "serde" = [ "dep:serde" ];
          "serde1" = [ "serde" ];
          "std" = [ "alloc" "getrandom" "getrandom/std" ];
        };
        resolvedDefaultFeatures = [ "alloc" "getrandom" "std" ];
      };
      "rand_hc" = rec {
        crateName = "rand_hc";
        version = "0.2.0";
        edition = "2018";
        sha256 = "0g31sqwpmsirdlwr0svnacr4dbqyz339im4ssl9738cjgfpjjcfa";
        authors = [
          "The Rand Project Developers"
        ];
        dependencies = [
          {
            name = "rand_core";
            packageId = "rand_core";
          }
        ];

      };
      "rand_pcg" = rec {
        crateName = "rand_pcg";
        version = "0.2.1";
        edition = "2018";
        sha256 = "0ab4h6s6x3py833jk61lwadq83qd1c8bih2hgi6yps9rnv0x1aqn";
        authors = [
          "The Rand Project Developers"
        ];
        dependencies = [
          {
            name = "rand_core";
            packageId = "rand_core";
          }
        ];
        features = {
          "serde" = [ "dep:serde" ];
          "serde1" = [ "serde" ];
        };
      };
      "redox_syscall" = rec {
        crateName = "redox_syscall";
        version = "0.2.16";
        edition = "2018";
        sha256 = "16jicm96kjyzm802cxdd1k9jmcph0db1a4lhslcnhjsvhp0mhnpv";
        libName = "syscall";
        authors = [
          "Jeremy Soller <jackpot51@gmail.com>"
        ];
        dependencies = [
          {
            name = "bitflags";
            packageId = "bitflags";
          }
        ];

      };
      "regex" = rec {
        crateName = "regex";
        version = "1.7.0";
        edition = "2018";
        sha256 = "12l6if07cb6fa6nigql90qrw0happnbnzqvr6jpg4hg2z2g5axp0";
        authors = [
          "The Rust Project Developers"
        ];
        dependencies = [
          {
            name = "aho-corasick";
            packageId = "aho-corasick";
            optional = true;
          }
          {
            name = "memchr";
            packageId = "memchr";
            optional = true;
          }
          {
            name = "regex-syntax";
            packageId = "regex-syntax";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "aho-corasick" = [ "dep:aho-corasick" ];
          "default" = [ "std" "perf" "unicode" "regex-syntax/default" ];
          "memchr" = [ "dep:memchr" ];
          "perf" = [ "perf-cache" "perf-dfa" "perf-inline" "perf-literal" ];
          "perf-literal" = [ "aho-corasick" "memchr" ];
          "unicode" = [ "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" "regex-syntax/unicode" ];
          "unicode-age" = [ "regex-syntax/unicode-age" ];
          "unicode-bool" = [ "regex-syntax/unicode-bool" ];
          "unicode-case" = [ "regex-syntax/unicode-case" ];
          "unicode-gencat" = [ "regex-syntax/unicode-gencat" ];
          "unicode-perl" = [ "regex-syntax/unicode-perl" ];
          "unicode-script" = [ "regex-syntax/unicode-script" ];
          "unicode-segment" = [ "regex-syntax/unicode-segment" ];
          "unstable" = [ "pattern" ];
          "use_std" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "aho-corasick" "default" "memchr" "perf" "perf-cache" "perf-dfa" "perf-inline" "perf-literal" "std" "unicode" "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" ];
      };
      "regex-syntax" = rec {
        crateName = "regex-syntax";
        version = "0.6.28";
        edition = "2018";
        sha256 = "0j68z4jnxshfymb08j1drvxn9wgs1469047lfaq4im78wcxn0v25";
        authors = [
          "The Rust Project Developers"
        ];
        features = {
          "default" = [ "unicode" ];
          "unicode" = [ "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" ];
        };
        resolvedDefaultFeatures = [ "default" "unicode" "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" ];
      };
      "remove_dir_all" = rec {
        crateName = "remove_dir_all";
        version = "0.5.3";
        edition = "2015";
        sha256 = "1rzqbsgkmr053bxxl04vmvsd1njyz0nxvly97aip6aa2cmb15k9s";
        authors = [
          "Aaronepower <theaaronepower@gmail.com>"
        ];
        dependencies = [
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features = [ "std" "errhandlingapi" "winerror" "fileapi" "winbase" ];
          }
        ];

      };
      "rustc-demangle" = rec {
        crateName = "rustc-demangle";
        version = "0.1.21";
        edition = "2015";
        sha256 = "0hn3xyd2n3bg3jnc5a5jbzll32n4r5a65bqzs287l30m5c53xw3y";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        features = {
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
        };
      };
      "ryu" = rec {
        crateName = "ryu";
        version = "1.0.11";
        edition = "2018";
        sha256 = "02czvxrxhi2gmamw25drdvkfkkk9xd9758bpnk0s30mfyggsn0a5";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        features = {
          "no-panic" = [ "dep:no-panic" ];
        };
      };
      "serde" = rec {
        crateName = "serde";
        version = "1.0.147";
        edition = "2015";
        sha256 = "0rc9jj8bbhf3lkf07ln8kyljigyzc4kk90nzg4dc2gwqmsdxd4yi";
        authors = [
          "Erick Tryzelaar <erick.tryzelaar@gmail.com>"
          "David Tolnay <dtolnay@gmail.com>"
        ];
        features = {
          "default" = [ "std" ];
          "derive" = [ "serde_derive" ];
          "serde_derive" = [ "dep:serde_derive" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "serde_derive" = rec {
        crateName = "serde_derive";
        version = "1.0.147";
        edition = "2015";
        sha256 = "0ln8rqbybpxmk4fvh6lgm75acs1d8x90fi44fhx3x77wm0n3c7ag";
        procMacro = true;
        authors = [
          "Erick Tryzelaar <erick.tryzelaar@gmail.com>"
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
          }
        ];
        features = {
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "serde_yaml" = rec {
        crateName = "serde_yaml";
        version = "0.9.14";
        edition = "2021";
        sha256 = "1nh908xb3m09jk4n6cl3iqync87fsrs1kw4g4nvkxphh7f4js8vd";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "indexmap";
            packageId = "indexmap";
            features = [ "std" ];
          }
          {
            name = "itoa";
            packageId = "itoa 1.0.4";
          }
          {
            name = "ryu";
            packageId = "ryu";
          }
          {
            name = "serde";
            packageId = "serde";
          }
          {
            name = "unsafe-libyaml";
            packageId = "unsafe-libyaml";
          }
        ];

      };
      "signal-hook-registry" = rec {
        crateName = "signal-hook-registry";
        version = "1.4.0";
        edition = "2015";
        sha256 = "1c2mhijg54y6c1zi4630yki1vpq3z96ljfnsrdy0rb64ilr767p5";
        authors = [
          "Michal 'vorner' Vaner <vorner@vorner.cz>"
          "Masaki Hara <ackie.h.gmai@gmail.com>"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
          }
        ];

      };
      "slab" = rec {
        crateName = "slab";
        version = "0.4.7";
        edition = "2018";
        sha256 = "1vyw3rkdfdfkzfa1mh83s237sll8v5kazfwxma60bq4b59msf526";
        authors = [
          "Carl Lerche <me@carllerche.com>"
        ];
        buildDependencies = [
          {
            name = "autocfg";
            packageId = "autocfg";
          }
        ];
        features = {
          "default" = [ "std" ];
          "serde" = [ "dep:serde" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "socket2" = rec {
        crateName = "socket2";
        version = "0.3.19";
        edition = "2018";
        sha256 = "0vldz14mxqxnjqb6an2pj7mgclv7nrk45cpscwq7g3fj2c0mfbhj";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."unix" or false);
            features = [ "align" ];
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features = [ "handleapi" "ws2def" "ws2ipdef" "ws2tcpip" "minwindef" ];
          }
        ];
        features = {
        };
      };
      "syn" = rec {
        crateName = "syn";
        version = "1.0.103";
        edition = "2018";
        sha256 = "0pa4b6g938drphblgdhmjnzclp7gcbf4zdgkmfaxlfhk54i08r58";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
            usesDefaultFeatures = false;
          }
          {
            name = "quote";
            packageId = "quote";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "unicode-ident";
            packageId = "unicode-ident";
          }
        ];
        features = {
          "default" = [ "derive" "parsing" "printing" "clone-impls" "proc-macro" ];
          "printing" = [ "quote" ];
          "proc-macro" = [ "proc-macro2/proc-macro" "quote/proc-macro" ];
          "quote" = [ "dep:quote" ];
          "test" = [ "syn-test-suite/all-features" ];
        };
        resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "extra-traits" "full" "parsing" "printing" "proc-macro" "quote" "visit" "visit-mut" ];
      };
      "synstructure" = rec {
        crateName = "synstructure";
        version = "0.12.6";
        edition = "2018";
        sha256 = "03r1lydbf3japnlpc4wka7y90pmz1i0danaj3f9a7b431akdlszk";
        authors = [
          "Nika Layzell <nika@thelayzells.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
            usesDefaultFeatures = false;
          }
          {
            name = "quote";
            packageId = "quote";
            usesDefaultFeatures = false;
          }
          {
            name = "syn";
            packageId = "syn";
            usesDefaultFeatures = false;
            features = [ "derive" "parsing" "printing" "clone-impls" "visit" "extra-traits" ];
          }
          {
            name = "unicode-xid";
            packageId = "unicode-xid";
          }
        ];
        features = {
          "default" = [ "proc-macro" ];
          "proc-macro" = [ "proc-macro2/proc-macro" "syn/proc-macro" "quote/proc-macro" ];
        };
        resolvedDefaultFeatures = [ "default" "proc-macro" ];
      };
      "tempfile" = rec {
        crateName = "tempfile";
        version = "3.3.0";
        edition = "2018";
        sha256 = "1r3rdp66f7w075mz6blh244syr3h0lbm07ippn7xrbgfxbs1xnsw";
        authors = [
          "Steven Allen <steven@stebalien.com>"
          "The Rust Project Developers"
          "Ashley Mannix <ashleymannix@live.com.au>"
          "Jason White <jasonaw0@gmail.com>"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
          {
            name = "fastrand";
            packageId = "fastrand";
          }
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: ((target."unix" or false) || ("wasi" == target."os"));
          }
          {
            name = "redox_syscall";
            packageId = "redox_syscall";
            target = { target, features }: ("redox" == target."os");
          }
          {
            name = "remove_dir_all";
            packageId = "remove_dir_all";
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features = [ "fileapi" "handleapi" "winbase" ];
          }
        ];
        features = {
        };
      };
      "termcolor" = rec {
        crateName = "termcolor";
        version = "1.1.3";
        edition = "2018";
        sha256 = "0mbpflskhnz3jf312k50vn0hqbql8ga2rk0k79pkgchip4q4vcms";
        authors = [
          "Andrew Gallant <jamslam@gmail.com>"
        ];
        dependencies = [
          {
            name = "winapi-util";
            packageId = "winapi-util";
            target = { target, features }: (target."windows" or false);
          }
        ];

      };
      "tokio" = rec {
        crateName = "tokio";
        version = "0.2.25";
        edition = "2018";
        sha256 = "14l0rll6y1dyzh6qcd8rma2ch3wx0dxzxq8b54di744sjirs40v7";
        authors = [
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 0.5.6";
          }
          {
            name = "fnv";
            packageId = "fnv";
            optional = true;
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            optional = true;
          }
          {
            name = "iovec";
            packageId = "iovec";
            optional = true;
          }
          {
            name = "lazy_static";
            packageId = "lazy_static";
            optional = true;
          }
          {
            name = "libc";
            packageId = "libc";
            optional = true;
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "memchr";
            packageId = "memchr";
            optional = true;
          }
          {
            name = "mio";
            packageId = "mio";
            optional = true;
          }
          {
            name = "mio-named-pipes";
            packageId = "mio-named-pipes";
            optional = true;
            target = { target, features }: (target."windows" or false);
          }
          {
            name = "mio-uds";
            packageId = "mio-uds";
            optional = true;
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "num_cpus";
            packageId = "num_cpus";
            optional = true;
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite 0.1.12";
          }
          {
            name = "signal-hook-registry";
            packageId = "signal-hook-registry";
            optional = true;
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "slab";
            packageId = "slab";
            optional = true;
          }
          {
            name = "tokio-macros";
            packageId = "tokio-macros";
            optional = true;
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            optional = true;
            usesDefaultFeatures = false;
            target = { target, features }: (target."windows" or false);
          }
        ];
        features = {
          "blocking" = [ "rt-core" ];
          "dns" = [ "rt-core" ];
          "fnv" = [ "dep:fnv" ];
          "fs" = [ "rt-core" "io-util" ];
          "full" = [ "blocking" "dns" "fs" "io-driver" "io-util" "io-std" "macros" "net" "process" "rt-core" "rt-util" "rt-threaded" "signal" "stream" "sync" "time" ];
          "futures-core" = [ "dep:futures-core" ];
          "io-driver" = [ "mio" "lazy_static" ];
          "io-std" = [ "rt-core" ];
          "io-util" = [ "memchr" ];
          "iovec" = [ "dep:iovec" ];
          "lazy_static" = [ "dep:lazy_static" ];
          "libc" = [ "dep:libc" ];
          "macros" = [ "tokio-macros" ];
          "memchr" = [ "dep:memchr" ];
          "mio" = [ "dep:mio" ];
          "mio-named-pipes" = [ "dep:mio-named-pipes" ];
          "mio-uds" = [ "dep:mio-uds" ];
          "net" = [ "dns" "tcp" "udp" "uds" ];
          "num_cpus" = [ "dep:num_cpus" ];
          "parking_lot" = [ "dep:parking_lot" ];
          "process" = [ "io-driver" "libc" "mio-named-pipes" "signal" "winapi/consoleapi" "winapi/minwindef" "winapi/threadpoollegacyapiset" "winapi/winerror" ];
          "rt-core" = [ "slab" ];
          "rt-threaded" = [ "num_cpus" "rt-core" ];
          "signal" = [ "io-driver" "lazy_static" "libc" "mio-uds" "signal-hook-registry" "winapi/consoleapi" "winapi/minwindef" ];
          "signal-hook-registry" = [ "dep:signal-hook-registry" ];
          "slab" = [ "dep:slab" ];
          "stream" = [ "futures-core" ];
          "sync" = [ "fnv" ];
          "tcp" = [ "io-driver" "iovec" ];
          "time" = [ "slab" ];
          "tokio-macros" = [ "dep:tokio-macros" ];
          "tracing" = [ "dep:tracing" ];
          "udp" = [ "io-driver" ];
          "uds" = [ "io-driver" "mio-uds" "libc" ];
          "winapi" = [ "dep:winapi" ];
        };
        resolvedDefaultFeatures = [ "blocking" "default" "fnv" "futures-core" "io-driver" "io-util" "iovec" "lazy_static" "libc" "macros" "memchr" "mio" "mio-named-pipes" "mio-uds" "num_cpus" "process" "rt-core" "rt-threaded" "signal" "signal-hook-registry" "slab" "stream" "sync" "tcp" "time" "tokio-macros" "winapi" ];
      };
      "tokio-macros" = rec {
        crateName = "tokio-macros";
        version = "0.2.6";
        edition = "2018";
        sha256 = "0ni60vnrf32r3wfhlahmnds1phx5d1xfbmyq9j0mz8kkzh5s0kg4";
        procMacro = true;
        authors = [
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            features = [ "full" ];
          }
        ];

      };
      "tokio-util 0.2.0" = rec {
        crateName = "tokio-util";
        version = "0.2.0";
        edition = "2018";
        sha256 = "0c39s4y0kvzkyarn1f9s8khqyajiqn7m4cjsa208f87ch88sa7ap";
        authors = [
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 0.5.6";
          }
          {
            name = "futures-core";
            packageId = "futures-core";
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite 0.1.12";
          }
          {
            name = "tokio";
            packageId = "tokio";
          }
        ];
        devDependencies = [
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "full" ];
          }
        ];
        features = {
          "full" = [ "codec" "udp" ];
          "udp" = [ "tokio/udp" ];
        };
        resolvedDefaultFeatures = [ "codec" "default" ];
      };
      "tokio-util 0.3.1" = rec {
        crateName = "tokio-util";
        version = "0.3.1";
        edition = "2018";
        sha256 = "16b48dl6sbc9x944jgjvsd65ab1w2c2qcziddbrbwv1b3y4l50my";
        authors = [
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 0.5.6";
          }
          {
            name = "futures-core";
            packageId = "futures-core";
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite 0.1.12";
          }
          {
            name = "tokio";
            packageId = "tokio";
          }
        ];
        devDependencies = [
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "full" ];
          }
        ];
        features = {
          "codec" = [ "tokio/stream" ];
          "compat" = [ "futures-io" ];
          "full" = [ "codec" "udp" "compat" ];
          "futures-io" = [ "dep:futures-io" ];
          "udp" = [ "tokio/udp" ];
        };
        resolvedDefaultFeatures = [ "codec" "default" ];
      };
      "tonic" = rec {
        crateName = "tonic";
        version = "0.1.1";
        edition = "2018";
        sha256 = "0j2f7q97zrkhakab651mp56kxfjw7gk6jw677xzyp0yln51kca08";
        authors = [
          "Lucio Franco <luciofranco14@gmail.com>"
        ];
        dependencies = [
          {
            name = "async-stream";
            packageId = "async-stream";
          }
          {
            name = "async-trait";
            packageId = "async-trait";
            optional = true;
          }
          {
            name = "base64";
            packageId = "base64";
          }
          {
            name = "bytes";
            packageId = "bytes 0.5.6";
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
          }
          {
            name = "http";
            packageId = "http";
          }
          {
            name = "http-body";
            packageId = "http-body";
          }
          {
            name = "hyper";
            packageId = "hyper";
            optional = true;
            features = [ "stream" ];
          }
          {
            name = "percent-encoding";
            packageId = "percent-encoding";
          }
          {
            name = "pin-project";
            packageId = "pin-project 0.4.30";
          }
          {
            name = "prost";
            packageId = "prost";
            optional = true;
          }
          {
            name = "prost-derive";
            packageId = "prost-derive";
            optional = true;
          }
          {
            name = "tokio";
            packageId = "tokio";
            optional = true;
            features = [ "tcp" ];
          }
          {
            name = "tokio-util";
            packageId = "tokio-util 0.2.0";
            features = [ "codec" ];
          }
          {
            name = "tower";
            packageId = "tower";
            optional = true;
          }
          {
            name = "tower-balance";
            packageId = "tower-balance";
            optional = true;
          }
          {
            name = "tower-load";
            packageId = "tower-load";
            optional = true;
          }
          {
            name = "tower-make";
            packageId = "tower-make";
            features = [ "connect" ];
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
          {
            name = "tracing";
            packageId = "tracing";
          }
          {
            name = "tracing-futures";
            packageId = "tracing-futures";
            optional = true;
          }
        ];
        devDependencies = [
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "rt-core" "macros" ];
          }
        ];
        features = {
          "async-trait" = [ "dep:async-trait" ];
          "codegen" = [ "async-trait" "prost" "prost-derive" ];
          "default" = [ "transport" "codegen" ];
          "hyper" = [ "dep:hyper" ];
          "prost" = [ "dep:prost" ];
          "prost-derive" = [ "dep:prost-derive" ];
          "rustls-native-certs" = [ "dep:rustls-native-certs" ];
          "tls" = [ "transport" "tokio-rustls" ];
          "tls-roots" = [ "tls" "rustls-native-certs" ];
          "tokio" = [ "dep:tokio" ];
          "tokio-rustls" = [ "dep:tokio-rustls" ];
          "tower" = [ "dep:tower" ];
          "tower-balance" = [ "dep:tower-balance" ];
          "tower-load" = [ "dep:tower-load" ];
          "tracing-futures" = [ "dep:tracing-futures" ];
          "transport" = [ "hyper" "tokio" "tower" "tower-balance" "tower-load" "tracing-futures" ];
        };
        resolvedDefaultFeatures = [ "async-trait" "codegen" "default" "hyper" "prost" "prost-derive" "tokio" "tower" "tower-balance" "tower-load" "tracing-futures" "transport" ];
      };
      "tonic-build" = rec {
        crateName = "tonic-build";
        version = "0.1.1";
        edition = "2018";
        sha256 = "0ljy1y9zjmn0wzgwqxba7h9b1pkjipbzk85rqb3bqi8mlwxl2dh4";
        authors = [
          "Lucio Franco <luciofranco14@gmail.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "prost-build";
            packageId = "prost-build";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
          }
        ];
        features = {
          "default" = [ "transport" "rustfmt" ];
        };
        resolvedDefaultFeatures = [ "default" "rustfmt" "transport" ];
      };
      "tower" = rec {
        crateName = "tower";
        version = "0.3.1";
        edition = "2018";
        sha256 = "0qpykkjgf2ijpcqr6z374dj5dxdl1anvl2p8zhl7l2q9gh0njcgx";
        authors = [
          "Tower Maintainers <team@tower-rs.com>"
        ];
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "tower-buffer";
            packageId = "tower-buffer";
            usesDefaultFeatures = false;
          }
          {
            name = "tower-discover";
            packageId = "tower-discover";
          }
          {
            name = "tower-layer";
            packageId = "tower-layer";
          }
          {
            name = "tower-limit";
            packageId = "tower-limit";
          }
          {
            name = "tower-load-shed";
            packageId = "tower-load-shed";
          }
          {
            name = "tower-retry";
            packageId = "tower-retry";
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
          {
            name = "tower-timeout";
            packageId = "tower-timeout";
          }
          {
            name = "tower-util";
            packageId = "tower-util";
            features = [ "call-all" ];
          }
        ];
        features = {
          "default" = [ "full" "log" ];
          "log" = [ "tower-buffer/log" ];
        };
        resolvedDefaultFeatures = [ "default" "full" "log" ];
      };
      "tower-balance" = rec {
        crateName = "tower-balance";
        version = "0.3.0";
        edition = "2018";
        sha256 = "0k2x4yy7dxmyc3f3422604fnygj35j5gkz0yhm4281dp2dv2g4m7";
        authors = [
          "Tower Maintainers <team@tower-rs.com>"
        ];
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
          }
          {
            name = "indexmap";
            packageId = "indexmap";
          }
          {
            name = "pin-project";
            packageId = "pin-project 0.4.30";
          }
          {
            name = "rand";
            packageId = "rand";
            features = [ "small_rng" ];
          }
          {
            name = "slab";
            packageId = "slab";
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "sync" "time" ];
          }
          {
            name = "tower-discover";
            packageId = "tower-discover";
          }
          {
            name = "tower-layer";
            packageId = "tower-layer";
          }
          {
            name = "tower-load";
            packageId = "tower-load";
          }
          {
            name = "tower-make";
            packageId = "tower-make";
          }
          {
            name = "tower-ready-cache";
            packageId = "tower-ready-cache";
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
          {
            name = "tracing";
            packageId = "tracing";
          }
        ];
        features = {
          "default" = [ "log" ];
          "log" = [ "tracing/log" ];
        };
        resolvedDefaultFeatures = [ "default" "log" ];
      };
      "tower-buffer" = rec {
        crateName = "tower-buffer";
        version = "0.3.0";
        edition = "2018";
        sha256 = "0sj40370p9mh0llcgbvk6ddwzmig3kay9q36kf5lqijxlv17v264";
        authors = [
          "Tower Maintainers <team@tower-rs.com>"
        ];
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "pin-project";
            packageId = "pin-project 0.4.30";
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "rt-core" "sync" ];
          }
          {
            name = "tower-layer";
            packageId = "tower-layer";
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
          {
            name = "tracing";
            packageId = "tracing";
          }
        ];
        devDependencies = [
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "macros" ];
          }
        ];
        features = {
          "default" = [ "log" ];
          "log" = [ "tracing/log" ];
        };
        resolvedDefaultFeatures = [ "log" ];
      };
      "tower-discover" = rec {
        crateName = "tower-discover";
        version = "0.3.0";
        edition = "2018";
        sha256 = "0aiwpxjsnhz1560w9whxpy6d0cxv6s0z5pwmqsf2ckf5qc050sqg";
        authors = [
          "Tower Maintainers <team@tower-rs.com>"
        ];
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "pin-project";
            packageId = "pin-project 0.4.30";
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
        ];

      };
      "tower-layer" = rec {
        crateName = "tower-layer";
        version = "0.3.2";
        edition = "2018";
        sha256 = "1l7i17k9vlssrdg4s3b0ia5jjkmmxsvv8s9y9ih0jfi8ssz8s362";
        authors = [
          "Tower Maintainers <team@tower-rs.com>"
        ];

      };
      "tower-limit" = rec {
        crateName = "tower-limit";
        version = "0.3.1";
        edition = "2018";
        sha256 = "010l6v8vidpsxsq3mws421scsm54q5x53m50zazqmmmybl609hwj";
        authors = [
          "Tower Maintainers <team@tower-rs.com>"
        ];
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "pin-project";
            packageId = "pin-project 0.4.30";
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "time" ];
          }
          {
            name = "tower-layer";
            packageId = "tower-layer";
          }
          {
            name = "tower-load";
            packageId = "tower-load";
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
        ];
        devDependencies = [
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "macros" "test-util" ];
          }
        ];

      };
      "tower-load" = rec {
        crateName = "tower-load";
        version = "0.3.0";
        edition = "2018";
        sha256 = "0yq1sb2r2rdfsxfhg9k8sxcfvy2hdiyglzkdjsvr4x6hmz1rziwc";
        authors = [
          "Tower Maintainers <team@tower-rs.com>"
        ];
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "pin-project";
            packageId = "pin-project 0.4.30";
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "time" ];
          }
          {
            name = "tower-discover";
            packageId = "tower-discover";
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
        ];
        devDependencies = [
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "macros" "test-util" ];
          }
        ];

      };
      "tower-load-shed" = rec {
        crateName = "tower-load-shed";
        version = "0.3.0";
        edition = "2018";
        sha256 = "0kmfy08nq1hjj444rdw9qrwkxbhda4i6jjzbbwqxqwq1j0iiw0lz";
        authors = [
          "Tower Maintainers <team@tower-rs.com>"
        ];
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "pin-project";
            packageId = "pin-project 0.4.30";
          }
          {
            name = "tower-layer";
            packageId = "tower-layer";
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
        ];

      };
      "tower-make" = rec {
        crateName = "tower-make";
        version = "0.3.0";
        edition = "2018";
        sha256 = "0rf9rnjiwffd6k12qkhhilj6l584ckvx9zvp92zn80sach6kfl6f";
        authors = [
          "Tower Maintainers <team@tower-rs.com>"
        ];
        dependencies = [
          {
            name = "tokio";
            packageId = "tokio";
            optional = true;
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
        ];
        features = {
          "connect" = [ "tokio" ];
          "tokio" = [ "dep:tokio" ];
        };
        resolvedDefaultFeatures = [ "connect" "tokio" ];
      };
      "tower-ready-cache" = rec {
        crateName = "tower-ready-cache";
        version = "0.3.1";
        edition = "2018";
        sha256 = "07qyb5mv4xjhvwjxhkmivhahrb8wnf0cfcn85rz2d0al1ribdasf";
        authors = [
          "Tower Maintainers <team@tower-rs.com>"
        ];
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
            features = [ "alloc" ];
          }
          {
            name = "indexmap";
            packageId = "indexmap";
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "sync" ];
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
        ];

      };
      "tower-retry" = rec {
        crateName = "tower-retry";
        version = "0.3.0";
        edition = "2018";
        sha256 = "0lm9nv4qcvk44nr443xkkpcnaklfzq4b6clj9myrby52m9b7jwp6";
        authors = [
          "Tower Maintainers <team@tower-rs.com>"
        ];
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "pin-project";
            packageId = "pin-project 0.4.30";
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "time" ];
          }
          {
            name = "tower-layer";
            packageId = "tower-layer";
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
        ];
        devDependencies = [
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "macros" "test-util" ];
          }
        ];

      };
      "tower-service" = rec {
        crateName = "tower-service";
        version = "0.3.2";
        edition = "2018";
        sha256 = "0lmfzmmvid2yp2l36mbavhmqgsvzqf7r2wiwz73ml4xmwaf1rg5n";
        authors = [
          "Tower Maintainers <team@tower-rs.com>"
        ];

      };
      "tower-timeout" = rec {
        crateName = "tower-timeout";
        version = "0.3.0";
        edition = "2018";
        sha256 = "07mkwjr9hqdr4w84h2ansanl0ba8iihc1bpa4f497gjpncj8jyqj";
        authors = [
          "Tower Maintainers <team@tower-rs.com>"
        ];
        dependencies = [
          {
            name = "pin-project";
            packageId = "pin-project 0.4.30";
          }
          {
            name = "tokio";
            packageId = "tokio";
            features = [ "time" ];
          }
          {
            name = "tower-layer";
            packageId = "tower-layer";
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
        ];

      };
      "tower-util" = rec {
        crateName = "tower-util";
        version = "0.3.1";
        edition = "2018";
        sha256 = "0x4np2s7h891spvxaarcyainj12a7gvnh7jif9y80cvdh8ckq2fi";
        authors = [
          "Tower Maintainers <team@tower-rs.com>"
        ];
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            optional = true;
            usesDefaultFeatures = false;
            features = [ "alloc" ];
          }
          {
            name = "pin-project";
            packageId = "pin-project 0.4.30";
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
        ];
        features = {
          "call-all" = [ "futures-util" ];
          "default" = [ "call-all" ];
          "futures-util" = [ "dep:futures-util" ];
        };
        resolvedDefaultFeatures = [ "call-all" "default" "futures-util" ];
      };
      "tracing" = rec {
        crateName = "tracing";
        version = "0.1.37";
        edition = "2018";
        sha256 = "1f2fylc79xmbh7v53kak6qyw27njbx227rd64kb4bga8ilxc7s4c";
        authors = [
          "Eliza Weisman <eliza@buoyant.io>"
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
          {
            name = "log";
            packageId = "log";
            optional = true;
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite 0.2.9";
          }
          {
            name = "tracing-attributes";
            packageId = "tracing-attributes";
            optional = true;
          }
          {
            name = "tracing-core";
            packageId = "tracing-core";
            usesDefaultFeatures = false;
          }
        ];
        devDependencies = [
          {
            name = "log";
            packageId = "log";
          }
        ];
        features = {
          "attributes" = [ "tracing-attributes" ];
          "default" = [ "std" "attributes" ];
          "log" = [ "dep:log" ];
          "log-always" = [ "log" ];
          "std" = [ "tracing-core/std" ];
          "tracing-attributes" = [ "dep:tracing-attributes" ];
          "valuable" = [ "tracing-core/valuable" ];
        };
        resolvedDefaultFeatures = [ "attributes" "default" "log" "std" "tracing-attributes" ];
      };
      "tracing-attributes" = rec {
        crateName = "tracing-attributes";
        version = "0.1.23";
        edition = "2018";
        sha256 = "06h80cy0i1kilvnj8j9dw2kcfwbwj49n2s3jwskhr1rra7sgh5s0";
        procMacro = true;
        authors = [
          "Tokio Contributors <team@tokio.rs>"
          "Eliza Weisman <eliza@buoyant.io>"
          "David Barsky <dbarsky@amazon.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            usesDefaultFeatures = false;
            features = [ "full" "parsing" "printing" "visit" "visit-mut" "clone-impls" "extra-traits" "proc-macro" ];
          }
        ];
        features = {
        };
      };
      "tracing-core" = rec {
        crateName = "tracing-core";
        version = "0.1.30";
        edition = "2018";
        sha256 = "0fi1jz3jbzk3n7k379pwv3wfhn35c5gcwn000m2xh7xb1sx07sr4";
        authors = [
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "once_cell";
            packageId = "once_cell";
            optional = true;
          }
        ];
        features = {
          "default" = [ "std" "valuable/std" ];
          "once_cell" = [ "dep:once_cell" ];
          "std" = [ "once_cell" ];
          "valuable" = [ "dep:valuable" ];
        };
        resolvedDefaultFeatures = [ "once_cell" "std" ];
      };
      "tracing-futures" = rec {
        crateName = "tracing-futures";
        version = "0.2.5";
        edition = "2018";
        sha256 = "1wimg0iwa2ldq7xv98lvivvf3q9ykfminig8r1bs0ig22np9bl4p";
        authors = [
          "Eliza Weisman <eliza@buoyant.io>"
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "pin-project";
            packageId = "pin-project 1.0.12";
            optional = true;
          }
          {
            name = "tracing";
            packageId = "tracing";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "default" = [ "std-future" "std" ];
          "futures" = [ "dep:futures" ];
          "futures-01" = [ "futures_01" "std" ];
          "futures-03" = [ "std-future" "futures" "futures-task" "std" ];
          "futures-task" = [ "dep:futures-task" ];
          "futures_01" = [ "dep:futures_01" ];
          "pin-project" = [ "dep:pin-project" ];
          "std" = [ "tracing/std" ];
          "std-future" = [ "pin-project" ];
          "tokio" = [ "dep:tokio" ];
          "tokio-executor" = [ "dep:tokio-executor" ];
        };
        resolvedDefaultFeatures = [ "default" "pin-project" "std" "std-future" ];
      };
      "try-lock" = rec {
        crateName = "try-lock";
        version = "0.2.3";
        edition = "2015";
        sha256 = "0hkn1ksmg5hdqgqdw1ahy5qk69f4crh2psf0v61qphyrf777nm2r";
        authors = [
          "Sean McArthur <sean@seanmonstar.com>"
        ];

      };
      "unicode-ident" = rec {
        crateName = "unicode-ident";
        version = "1.0.5";
        edition = "2018";
        sha256 = "1wznr6ax3jl09vxkvj4a62vip2avfgif13js9sflkjg4b6fv7skc";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];

      };
      "unicode-segmentation" = rec {
        crateName = "unicode-segmentation";
        version = "1.10.0";
        edition = "2018";
        sha256 = "0nks0izrlfrc26hkbs3v3rdjk7lkrflffv2ajhgf0gbql19g1nqg";
        authors = [
          "kwantam <kwantam@gmail.com>"
          "Manish Goregaokar <manishsmail@gmail.com>"
        ];
        features = {
        };
      };
      "unicode-xid" = rec {
        crateName = "unicode-xid";
        version = "0.2.4";
        edition = "2015";
        sha256 = "131dfzf7d8fsr1ivch34x42c2d1ik5ig3g78brxncnn0r1sdyqpr";
        authors = [
          "erick.tryzelaar <erick.tryzelaar@gmail.com>"
          "kwantam <kwantam@gmail.com>"
          "Manish Goregaokar <manishsmail@gmail.com>"
        ];
        features = {
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "unsafe-libyaml" = rec {
        crateName = "unsafe-libyaml";
        version = "0.2.4";
        edition = "2021";
        crateBin = [];
        sha256 = "0s3f83hy8rd4q6r0dj4pmwyrgvlhsd0vxmzqaslg3ica7mbzmrf1";
        authors = [
          "David Tolnay <dtolnay@gmail.com>"
        ];

      };
      "void" = rec {
        crateName = "void";
        version = "1.0.2";
        edition = "2015";
        sha256 = "0zc8f0ksxvmhvgx4fdg0zyn6vdnbxd2xv9hfx4nhzg6kbs4f80ka";
        authors = [
          "Jonathan Reem <jonathan.reem@gmail.com>"
        ];
        features = {
          "default" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "want" = rec {
        crateName = "want";
        version = "0.3.0";
        edition = "2018";
        sha256 = "181b2zmwfq389x9n2g1n37cvcvvdand832zz6v8i1l8wrdlaks0w";
        authors = [
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        dependencies = [
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "try-lock";
            packageId = "try-lock";
          }
        ];

      };
      "wasi" = rec {
        crateName = "wasi";
        version = "0.9.0+wasi-snapshot-preview1";
        edition = "2018";
        sha256 = "06g5v3vrdapfzvfq662cij7v8a1flwr2my45nnncdv2galrdzkfc";
        authors = [
          "The Cranelift Project Developers"
        ];
        features = {
          "compiler_builtins" = [ "dep:compiler_builtins" ];
          "core" = [ "dep:core" ];
          "default" = [ "std" ];
          "rustc-dep-of-std" = [ "compiler_builtins" "core" "rustc-std-workspace-alloc" ];
          "rustc-std-workspace-alloc" = [ "dep:rustc-std-workspace-alloc" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "which" = rec {
        crateName = "which";
        version = "3.1.1";
        edition = "2015";
        sha256 = "094pw9pi48szshn9ln69z2kg7syq1jp80h5ps1qncbsaw4d0f4fh";
        authors = [
          "Harry Fei <tiziyuanfang@gmail.com>"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
          }
        ];
        features = {
          "default" = [ "failure" ];
          "failure" = [ "dep:failure" ];
        };
      };
      "winapi 0.2.8" = rec {
        crateName = "winapi";
        version = "0.2.8";
        edition = "2015";
        sha256 = "0yh816lh6lf56dpsgxy189c2ai1z3j8mw9si6izqb6wsjkbcjz8n";
        authors = [
          "Peter Atashian <retep998@gmail.com>"
        ];

      };
      "winapi 0.3.9" = rec {
        crateName = "winapi";
        version = "0.3.9";
        edition = "2015";
        sha256 = "06gl025x418lchw1wxj64ycr7gha83m44cjr5sarhynd9xkrm0sw";
        authors = [
          "Peter Atashian <retep998@gmail.com>"
        ];
        dependencies = [
          {
            name = "winapi-i686-pc-windows-gnu";
            packageId = "winapi-i686-pc-windows-gnu";
            target = { target, features }: (pkgs.rust.lib.toRustTarget stdenv.hostPlatform == "i686-pc-windows-gnu");
          }
          {
            name = "winapi-x86_64-pc-windows-gnu";
            packageId = "winapi-x86_64-pc-windows-gnu";
            target = { target, features }: (pkgs.rust.lib.toRustTarget stdenv.hostPlatform == "x86_64-pc-windows-gnu");
          }
        ];
        features = {
          "debug" = [ "impl-debug" ];
        };
        resolvedDefaultFeatures = [ "consoleapi" "errhandlingapi" "fileapi" "handleapi" "ioapiset" "minwinbase" "minwindef" "namedpipeapi" "ntdef" "processenv" "std" "synchapi" "sysinfoapi" "threadpoollegacyapiset" "winbase" "wincon" "winerror" "winnt" "winsock2" "ws2def" "ws2ipdef" "ws2tcpip" ];
      };
      "winapi-build" = rec {
        crateName = "winapi-build";
        version = "0.1.1";
        edition = "2015";
        sha256 = "1g4rqsgjky0a7530qajn2bbfcrl2v0zb39idgdws9b1l7gp5wc9d";
        libName = "build";
        authors = [
          "Peter Atashian <retep998@gmail.com>"
        ];

      };
      "winapi-i686-pc-windows-gnu" = rec {
        crateName = "winapi-i686-pc-windows-gnu";
        version = "0.4.0";
        edition = "2015";
        sha256 = "1dmpa6mvcvzz16zg6d5vrfy4bxgg541wxrcip7cnshi06v38ffxc";
        authors = [
          "Peter Atashian <retep998@gmail.com>"
        ];

      };
      "winapi-util" = rec {
        crateName = "winapi-util";
        version = "0.1.5";
        edition = "2018";
        sha256 = "0y71bp7f6d536czj40dhqk0d55wfbbwqfp2ymqf1an5ibgl6rv3h";
        authors = [
          "Andrew Gallant <jamslam@gmail.com>"
        ];
        dependencies = [
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features = [ "std" "consoleapi" "errhandlingapi" "fileapi" "minwindef" "processenv" "winbase" "wincon" "winerror" "winnt" ];
          }
        ];

      };
      "winapi-x86_64-pc-windows-gnu" = rec {
        crateName = "winapi-x86_64-pc-windows-gnu";
        version = "0.4.0";
        edition = "2015";
        sha256 = "0gqq64czqb64kskjryj8isp62m2sgvx25yyj3kpc2myh85w24bki";
        authors = [
          "Peter Atashian <retep998@gmail.com>"
        ];

      };
      "ws2_32-sys" = rec {
        crateName = "ws2_32-sys";
        version = "0.2.1";
        edition = "2015";
        sha256 = "0ppscg5qfqaw0gzwv2a4nhn5bn01ff9iwn6ysqnzm4n8s3myz76m";
        libName = "ws2_32";
        authors = [
          "Peter Atashian <retep998@gmail.com>"
        ];
        dependencies = [
          {
            name = "winapi";
            packageId = "winapi 0.2.8";
          }
        ];
        buildDependencies = [
          {
            name = "winapi-build";
            packageId = "winapi-build";
          }
        ];

      };
    };

    #
# crate2nix/default.nix (excerpt start)
#

  /* Target (platform) data for conditional dependencies.
    This corresponds roughly to what buildRustCrate is setting.
  */
  makeDefaultTarget = platform: {
    unix = platform.isUnix;
    windows = platform.isWindows;
    fuchsia = true;
    test = false;

    /* We are choosing an arbitrary rust version to grab `lib` from,
      which is unfortunate, but `lib` has been version-agnostic the
      whole time so this is good enough for now.
    */
    os = pkgs.rust.lib.toTargetOs platform;
    arch = pkgs.rust.lib.toTargetArch platform;
    family = pkgs.rust.lib.toTargetFamily platform;
    env = "gnu";
    endian =
      if platform.parsed.cpu.significantByte.name == "littleEndian"
      then "little" else "big";
    pointer_width = toString platform.parsed.cpu.bits;
    vendor = platform.parsed.vendor.name;
    debug_assertions = false;
  };

  /* Filters common temp files and build files. */
  # TODO(pkolloch): Substitute with gitignore filter
  sourceFilter = name: type:
    let
      baseName = builtins.baseNameOf (builtins.toString name);
    in
      ! (
        # Filter out git
        baseName == ".gitignore"
        || (type == "directory" && baseName == ".git")

        # Filter out build results
        || (
          type == "directory" && (
            baseName == "target"
            || baseName == "_site"
            || baseName == ".sass-cache"
            || baseName == ".jekyll-metadata"
            || baseName == "build-artifacts"
          )
        )

        # Filter out nix-build result symlinks
        || (
          type == "symlink" && lib.hasPrefix "result" baseName
        )

        # Filter out IDE config
        || (
          type == "directory" && (
            baseName == ".idea" || baseName == ".vscode"
          )
        ) || lib.hasSuffix ".iml" baseName

        # Filter out nix build files
        || baseName == "Cargo.nix"

        # Filter out editor backup / swap files.
        || lib.hasSuffix "~" baseName
        || builtins.match "^\\.sw[a-z]$$" baseName != null
        || builtins.match "^\\..*\\.sw[a-z]$$" baseName != null
        || lib.hasSuffix ".tmp" baseName
        || lib.hasSuffix ".bak" baseName
        || baseName == "tests.nix"
      );

  /* Returns a crate which depends on successful test execution
    of crate given as the second argument.

    testCrateFlags: list of flags to pass to the test exectuable
    testInputs: list of packages that should be available during test execution
  */
  crateWithTest = { crate, testCrate, testCrateFlags, testInputs, testPreRun, testPostRun }:
    assert builtins.typeOf testCrateFlags == "list";
    assert builtins.typeOf testInputs == "list";
    assert builtins.typeOf testPreRun == "string";
    assert builtins.typeOf testPostRun == "string";
    let
      # override the `crate` so that it will build and execute tests instead of
      # building the actual lib and bin targets We just have to pass `--test`
      # to rustc and it will do the right thing.  We execute the tests and copy
      # their log and the test executables to $out for later inspection.
      test =
        let
          drv = testCrate.override
            (
              _: {
                buildTests = true;
              }
            );
          # If the user hasn't set any pre/post commands, we don't want to
          # insert empty lines. This means that any existing users of crate2nix
          # don't get a spurious rebuild unless they set these explicitly.
          testCommand = pkgs.lib.concatStringsSep "\n"
            (pkgs.lib.filter (s: s != "") [
              testPreRun
              "$f $testCrateFlags 2>&1 | tee -a $out"
              testPostRun
            ]);
        in
        pkgs.runCommand "run-tests-${testCrate.name}"
          {
            inherit testCrateFlags;
            buildInputs = testInputs;
          } ''
          set -ex

          export RUST_BACKTRACE=1

          # recreate a file hierarchy as when running tests with cargo

          # the source for test data
          ${pkgs.xorg.lndir}/bin/lndir ${crate.src}

          # build outputs
          testRoot=target/debug
          mkdir -p $testRoot

          # executables of the crate
          # we copy to prevent std::env::current_exe() to resolve to a store location
          for i in ${crate}/bin/*; do
            cp "$i" "$testRoot"
          done
          chmod +w -R .

          # test harness executables are suffixed with a hash, like cargo does
          # this allows to prevent name collision with the main
          # executables of the crate
          hash=$(basename $out)
          for file in ${drv}/tests/*; do
            f=$testRoot/$(basename $file)-$hash
            cp $file $f
            ${testCommand}
          done
        '';
    in
    pkgs.runCommand "${crate.name}-linked"
      {
        inherit (crate) outputs crateName;
        passthru = (crate.passthru or { }) // {
          inherit test;
        };
      } ''
      echo tested by ${test}
      ${lib.concatMapStringsSep "\n" (output: "ln -s ${crate.${output}} ${"$"}${output}") crate.outputs}
    '';

  /* A restricted overridable version of builtRustCratesWithFeatures. */
  buildRustCrateWithFeatures =
    { packageId
    , features ? rootFeatures
    , crateOverrides ? defaultCrateOverrides
    , buildRustCrateForPkgsFunc ? null
    , runTests ? false
    , testCrateFlags ? [ ]
    , testInputs ? [ ]
      # Any command to run immediatelly before a test is executed.
    , testPreRun ? ""
      # Any command run immediatelly after a test is executed.
    , testPostRun ? ""
    }:
    lib.makeOverridable
      (
        { features
        , crateOverrides
        , runTests
        , testCrateFlags
        , testInputs
        , testPreRun
        , testPostRun
        }:
        let
          buildRustCrateForPkgsFuncOverriden =
            if buildRustCrateForPkgsFunc != null
            then buildRustCrateForPkgsFunc
            else
              (
                if crateOverrides == pkgs.defaultCrateOverrides
                then buildRustCrateForPkgs
                else
                  pkgs: (buildRustCrateForPkgs pkgs).override {
                    defaultCrateOverrides = crateOverrides;
                  }
              );
          builtRustCrates = builtRustCratesWithFeatures {
            inherit packageId features;
            buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden;
            runTests = false;
          };
          builtTestRustCrates = builtRustCratesWithFeatures {
            inherit packageId features;
            buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden;
            runTests = true;
          };
          drv = builtRustCrates.crates.${packageId};
          testDrv = builtTestRustCrates.crates.${packageId};
          derivation =
            if runTests then
              crateWithTest
                {
                  crate = drv;
                  testCrate = testDrv;
                  inherit testCrateFlags testInputs testPreRun testPostRun;
                }
            else drv;
        in
        derivation
      )
      { inherit features crateOverrides runTests testCrateFlags testInputs testPreRun testPostRun; };

  /* Returns an attr set with packageId mapped to the result of buildRustCrateForPkgsFunc
    for the corresponding crate.
  */
  builtRustCratesWithFeatures =
    { packageId
    , features
    , crateConfigs ? crates
    , buildRustCrateForPkgsFunc
    , runTests
    , makeTarget ? makeDefaultTarget
    } @ args:
      assert (builtins.isAttrs crateConfigs);
      assert (builtins.isString packageId);
      assert (builtins.isList features);
      assert (builtins.isAttrs (makeTarget stdenv.hostPlatform));
      assert (builtins.isBool runTests);
      let
        rootPackageId = packageId;
        mergedFeatures = mergePackageFeatures
          (
            args // {
              inherit rootPackageId;
              target = makeTarget stdenv.hostPlatform // { test = runTests; };
            }
          );
        # Memoize built packages so that reappearing packages are only built once.
        builtByPackageIdByPkgs = mkBuiltByPackageIdByPkgs pkgs;
        mkBuiltByPackageIdByPkgs = pkgs:
          let
            self = {
              crates = lib.mapAttrs (packageId: value: buildByPackageIdForPkgsImpl self pkgs packageId) crateConfigs;
              target = makeTarget pkgs.stdenv.hostPlatform;
              build = mkBuiltByPackageIdByPkgs pkgs.buildPackages;
            };
          in
          self;
        buildByPackageIdForPkgsImpl = self: pkgs: packageId:
          let
            features = mergedFeatures."${packageId}" or [ ];
            crateConfig' = crateConfigs."${packageId}";
            crateConfig =
              builtins.removeAttrs crateConfig' [ "resolvedDefaultFeatures" "devDependencies" ];
            devDependencies =
              lib.optionals
                (runTests && packageId == rootPackageId)
                (crateConfig'.devDependencies or [ ]);
            dependencies =
              dependencyDerivations {
                inherit features;
                inherit (self) target;
                buildByPackageId = depPackageId:
                  # proc_macro crates must be compiled for the build architecture
                  if crateConfigs.${depPackageId}.procMacro or false
                  then self.build.crates.${depPackageId}
                  else self.crates.${depPackageId};
                dependencies =
                  (crateConfig.dependencies or [ ])
                  ++ devDependencies;
              };
            buildDependencies =
              dependencyDerivations {
                inherit features;
                inherit (self.build) target;
                buildByPackageId = depPackageId:
                  self.build.crates.${depPackageId};
                dependencies = crateConfig.buildDependencies or [ ];
              };
            dependenciesWithRenames =
              let
                buildDeps = filterEnabledDependencies {
                  inherit features;
                  inherit (self) target;
                  dependencies = crateConfig.dependencies or [ ] ++ devDependencies;
                };
                hostDeps = filterEnabledDependencies {
                  inherit features;
                  inherit (self.build) target;
                  dependencies = crateConfig.buildDependencies or [ ];
                };
              in
              lib.filter (d: d ? "rename") (hostDeps ++ buildDeps);
            # Crate renames have the form:
            #
            # {
            #    crate_name = [
            #       { version = "1.2.3"; rename = "crate_name01"; }
            #    ];
            #    # ...
            # }
            crateRenames =
              let
                grouped =
                  lib.groupBy
                    (dependency: dependency.name)
                    dependenciesWithRenames;
                versionAndRename = dep:
                  let
                    package = crateConfigs."${dep.packageId}";
                  in
                  { inherit (dep) rename; version = package.version; };
              in
              lib.mapAttrs (name: choices: builtins.map versionAndRename choices) grouped;
          in
          buildRustCrateForPkgsFunc pkgs
            (
              crateConfig // {
                src = crateConfig.src or (
                  pkgs.fetchurl rec {
                    name = "${crateConfig.crateName}-${crateConfig.version}.tar.gz";
                    # https://www.pietroalbini.org/blog/downloading-crates-io/
                    # Not rate-limited, CDN URL.
                    url = "https://static.crates.io/crates/${crateConfig.crateName}/${crateConfig.crateName}-${crateConfig.version}.crate";
                    sha256 =
                      assert (lib.assertMsg (crateConfig ? sha256) "Missing sha256 for ${name}");
                      crateConfig.sha256;
                  }
                );
                extraRustcOpts = [ "-C" "linker=${pkgs.stdenv.cc.targetPrefix}cc" ] ++ lib.lists.optional (targetFeatures != [ ]) "-C target-feature=${lib.concatMapStringsSep "," (x: "+${x}") targetFeatures}";
                inherit features dependencies buildDependencies crateRenames release;
              }
            );
      in
      builtByPackageIdByPkgs;

  /* Returns the actual derivations for the given dependencies. */
  dependencyDerivations =
    { buildByPackageId
    , features
    , dependencies
    , target
    }:
      assert (builtins.isList features);
      assert (builtins.isList dependencies);
      assert (builtins.isAttrs target);
      let
        enabledDependencies = filterEnabledDependencies {
          inherit dependencies features target;
        };
        depDerivation = dependency: buildByPackageId dependency.packageId;
      in
      map depDerivation enabledDependencies;

  /* Returns a sanitized version of val with all values substituted that cannot
    be serialized as JSON.
  */
  sanitizeForJson = val:
    if builtins.isAttrs val
    then lib.mapAttrs (n: v: sanitizeForJson v) val
    else if builtins.isList val
    then builtins.map sanitizeForJson val
    else if builtins.isFunction val
    then "function"
    else val;

  /* Returns various tools to debug a crate. */
  debugCrate = { packageId, target ? makeDefaultTarget stdenv.hostPlatform }:
    assert (builtins.isString packageId);
    let
      debug = rec {
        # The built tree as passed to buildRustCrate.
        buildTree = buildRustCrateWithFeatures {
          buildRustCrateForPkgsFunc = _: lib.id;
          inherit packageId;
        };
        sanitizedBuildTree = sanitizeForJson buildTree;
        dependencyTree = sanitizeForJson
          (
            buildRustCrateWithFeatures {
              buildRustCrateForPkgsFunc = _: crate: {
                "01_crateName" = crate.crateName or false;
                "02_features" = crate.features or [ ];
                "03_dependencies" = crate.dependencies or [ ];
              };
              inherit packageId;
            }
          );
        mergedPackageFeatures = mergePackageFeatures {
          features = rootFeatures;
          inherit packageId target;
        };
        diffedDefaultPackageFeatures = diffDefaultPackageFeatures {
          inherit packageId target;
        };
      };
    in
    { internal = debug; };

  /* Returns differences between cargo default features and crate2nix default
    features.

    This is useful for verifying the feature resolution in crate2nix.
  */
  diffDefaultPackageFeatures =
    { crateConfigs ? crates
    , packageId
    , target
    }:
      assert (builtins.isAttrs crateConfigs);
      let
        prefixValues = prefix: lib.mapAttrs (n: v: { "${prefix}" = v; });
        mergedFeatures =
          prefixValues
            "crate2nix"
            (mergePackageFeatures { inherit crateConfigs packageId target; features = [ "default" ]; });
        configs = prefixValues "cargo" crateConfigs;
        combined = lib.foldAttrs (a: b: a // b) { } [ mergedFeatures configs ];
        onlyInCargo =
          builtins.attrNames
            (lib.filterAttrs (n: v: !(v ? "crate2nix") && (v ? "cargo")) combined);
        onlyInCrate2Nix =
          builtins.attrNames
            (lib.filterAttrs (n: v: (v ? "crate2nix") && !(v ? "cargo")) combined);
        differentFeatures = lib.filterAttrs
          (
            n: v:
              (v ? "crate2nix")
              && (v ? "cargo")
              && (v.crate2nix.features or [ ]) != (v."cargo".resolved_default_features or [ ])
          )
          combined;
      in
      builtins.toJSON {
        inherit onlyInCargo onlyInCrate2Nix differentFeatures;
      };

  /* Returns an attrset mapping packageId to the list of enabled features.

    If multiple paths to a dependency enable different features, the
    corresponding feature sets are merged. Features in rust are additive.
  */
  mergePackageFeatures =
    { crateConfigs ? crates
    , packageId
    , rootPackageId ? packageId
    , features ? rootFeatures
    , dependencyPath ? [ crates.${packageId}.crateName ]
    , featuresByPackageId ? { }
    , target
      # Adds devDependencies to the crate with rootPackageId.
    , runTests ? false
    , ...
    } @ args:
      assert (builtins.isAttrs crateConfigs);
      assert (builtins.isString packageId);
      assert (builtins.isString rootPackageId);
      assert (builtins.isList features);
      assert (builtins.isList dependencyPath);
      assert (builtins.isAttrs featuresByPackageId);
      assert (builtins.isAttrs target);
      assert (builtins.isBool runTests);
      let
        crateConfig = crateConfigs."${packageId}" or (builtins.throw "Package not found: ${packageId}");
        expandedFeatures = expandFeatures (crateConfig.features or { }) features;
        enabledFeatures = enableFeatures (crateConfig.dependencies or [ ]) expandedFeatures;
        depWithResolvedFeatures = dependency:
          let
            packageId = dependency.packageId;
            features = dependencyFeatures enabledFeatures dependency;
          in
          { inherit packageId features; };
        resolveDependencies = cache: path: dependencies:
          assert (builtins.isAttrs cache);
          assert (builtins.isList dependencies);
          let
            enabledDependencies = filterEnabledDependencies {
              inherit dependencies target;
              features = enabledFeatures;
            };
            directDependencies = map depWithResolvedFeatures enabledDependencies;
            foldOverCache = op: lib.foldl op cache directDependencies;
          in
          foldOverCache
            (
              cache: { packageId, features }:
                let
                  cacheFeatures = cache.${packageId} or [ ];
                  combinedFeatures = sortedUnique (cacheFeatures ++ features);
                in
                if cache ? ${packageId} && cache.${packageId} == combinedFeatures
                then cache
                else
                  mergePackageFeatures {
                    features = combinedFeatures;
                    featuresByPackageId = cache;
                    inherit crateConfigs packageId target runTests rootPackageId;
                  }
            );
        cacheWithSelf =
          let
            cacheFeatures = featuresByPackageId.${packageId} or [ ];
            combinedFeatures = sortedUnique (cacheFeatures ++ enabledFeatures);
          in
          featuresByPackageId // {
            "${packageId}" = combinedFeatures;
          };
        cacheWithDependencies =
          resolveDependencies cacheWithSelf "dep"
            (
              crateConfig.dependencies or [ ]
              ++ lib.optionals
                (runTests && packageId == rootPackageId)
                (crateConfig.devDependencies or [ ])
            );
        cacheWithAll =
          resolveDependencies
            cacheWithDependencies "build"
            (crateConfig.buildDependencies or [ ]);
      in
      cacheWithAll;

  /* Returns the enabled dependencies given the enabled features. */
  filterEnabledDependencies = { dependencies, features, target }:
    assert (builtins.isList dependencies);
    assert (builtins.isList features);
    assert (builtins.isAttrs target);

    lib.filter
      (
        dep:
        let
          targetFunc = dep.target or (features: true);
        in
        targetFunc { inherit features target; }
        && (
          !(dep.optional or false)
          || builtins.any (doesFeatureEnableDependency dep) features
        )
      )
      dependencies;

  /* Returns whether the given feature should enable the given dependency. */
  doesFeatureEnableDependency = dependency: feature:
    let
      name = dependency.rename or dependency.name;
      prefix = "${name}/";
      len = builtins.stringLength prefix;
      startsWithPrefix = builtins.substring 0 len feature == prefix;
    in
    feature == name || feature == "dep:" + name || startsWithPrefix;

  /* Returns the expanded features for the given inputFeatures by applying the
    rules in featureMap.

    featureMap is an attribute set which maps feature names to lists of further
    feature names to enable in case this feature is selected.
  */
  expandFeatures = featureMap: inputFeatures:
    assert (builtins.isAttrs featureMap);
    assert (builtins.isList inputFeatures);
    let
      expandFeature = feature:
        assert (builtins.isString feature);
        [ feature ] ++ (expandFeatures featureMap (featureMap."${feature}" or [ ]));
      outFeatures = lib.concatMap expandFeature inputFeatures;
    in
    sortedUnique outFeatures;

  /* This function adds optional dependencies as features if they are enabled
    indirectly by dependency features. This function mimics Cargo's behavior
    described in a note at:
    https://doc.rust-lang.org/nightly/cargo/reference/features.html#dependency-features
  */
  enableFeatures = dependencies: features:
    assert (builtins.isList features);
    assert (builtins.isList dependencies);
    let
      additionalFeatures = lib.concatMap
        (
          dependency:
            assert (builtins.isAttrs dependency);
            let
              enabled = builtins.any (doesFeatureEnableDependency dependency) features;
            in
            if (dependency.optional or false) && enabled
            then [ (dependency.rename or dependency.name) ]
            else [ ]
        )
        dependencies;
    in
    sortedUnique (features ++ additionalFeatures);

  /*
    Returns the actual features for the given dependency.

    features: The features of the crate that refers this dependency.
  */
  dependencyFeatures = features: dependency:
    assert (builtins.isList features);
    assert (builtins.isAttrs dependency);
    let
      defaultOrNil =
        if dependency.usesDefaultFeatures or true
        then [ "default" ]
        else [ ];
      explicitFeatures = dependency.features or [ ];
      additionalDependencyFeatures =
        let
          dependencyPrefix = (dependency.rename or dependency.name) + "/";
          dependencyFeatures =
            builtins.filter (f: lib.hasPrefix dependencyPrefix f) features;
        in
        builtins.map (lib.removePrefix dependencyPrefix) dependencyFeatures;
    in
    defaultOrNil ++ explicitFeatures ++ additionalDependencyFeatures;

  /* Sorts and removes duplicates from a list of strings. */
  sortedUnique = features:
    assert (builtins.isList features);
    assert (builtins.all builtins.isString features);
    let
      outFeaturesSet = lib.foldl (set: feature: set // { "${feature}" = 1; }) { } features;
      outFeaturesUnique = builtins.attrNames outFeaturesSet;
    in
    builtins.sort (a: b: a < b) outFeaturesUnique;

  deprecationWarning = message: value:
    if strictDeprecation
    then builtins.throw "strictDeprecation enabled, aborting: ${message}"
    else builtins.trace message value;

  #
  # crate2nix/default.nix (excerpt end)
  #
  };
}

