From 35f4faecd1c8fb7473665921625bf7c646f87192 Mon Sep 17 00:00:00 2001 From: Michael Zhang Date: Tue, 3 Aug 2021 16:57:42 -0500 Subject: [PATCH] nix flake --- .gitignore | 2 + Cargo.nix | 7889 +++++++++++++++++++++++++++++++++++++++++++++ crate-hashes.json | 3 + default.nix | 15 +- flake.lock | 12 +- flake.nix | 15 +- src/main.rs | 15 +- static.nix | 17 + 8 files changed, 7940 insertions(+), 28 deletions(-) create mode 100644 Cargo.nix create mode 100644 crate-hashes.json create mode 100644 static.nix diff --git a/.gitignore b/.gitignore index ea8c4bf..41e2a63 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ /target +/result +/result-lib \ No newline at end of file diff --git a/Cargo.nix b/Cargo.nix new file mode 100644 index 0000000..9782eb1 --- /dev/null +++ b/Cargo.nix @@ -0,0 +1,7889 @@ + +# This file was @generated by crate2nix 0.10.0 with the command: +# "generate" +# See https://github.com/kolloch/crate2nix for more info. + +{ nixpkgs ? +, pkgs ? import nixpkgs { config = {}; } +, lib ? pkgs.lib +, stdenv ? pkgs.stdenv +, buildRustCrateForPkgs ? if buildRustCrate != null + then lib.warn "crate2nix: Passing `buildRustCrate` as argument to Cargo.nix is deprecated. If you don't customize `buildRustCrate`, replace `callPackage ./Cargo.nix {}` by `import ./Cargo.nix { inherit pkgs; }`, and if you need to customize `buildRustCrate`, use `buildRustCrateForPkgs` instead." (_: buildRustCrate) + else pkgs: pkgs.buildRustCrate + # Deprecated +, buildRustCrate ? null + # 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 = "shitter"; + + # 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 = { + "shitter" = rec { + packageId = "shitter"; + build = internal.buildRustCrateWithFeatures { + packageId = "shitter"; + }; + + # 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 = { + "adler" = rec { + crateName = "adler"; + version = "1.0.2"; + edition = "2015"; + sha256 = "1zim79cvzd5yrkzl3nyfx0avijwgk9fqv3yrscdy1cc79ih02qpj"; + authors = [ + "Jonas Schievink " + ]; + features = { + "default" = [ "std" ]; + "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; + }; + }; + "aho-corasick" = rec { + crateName = "aho-corasick"; + version = "0.7.18"; + edition = "2018"; + sha256 = "0vv50b3nvkhyy7x7ip19qnsq11bqlnffkmj2yx2xlyk5wzawydqy"; + libName = "aho_corasick"; + authors = [ + "Andrew Gallant " + ]; + dependencies = [ + { + name = "memchr"; + packageId = "memchr"; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "std" ]; + "std" = [ "memchr/std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "ansi_term" = rec { + crateName = "ansi_term"; + version = "0.12.1"; + edition = "2015"; + sha256 = "1ljmkbilxgmhavxvxqa7qvm6f3fjggi7q2l3a72q9x0cxjvrnanm"; + authors = [ + "ogham@bsago.me" + "Ryan Scheel (Havvy) " + "Josh Triplett " + ]; + dependencies = [ + { + name = "winapi"; + packageId = "winapi"; + target = { target, features }: (target."os" == "windows"); + features = [ "consoleapi" "errhandlingapi" "fileapi" "handleapi" "processenv" ]; + } + ]; + features = { + "derive_serde_style" = [ "serde" ]; + }; + }; + "arrayref" = rec { + crateName = "arrayref"; + version = "0.3.6"; + edition = "2015"; + sha256 = "0i6m1l3f73i0lf0cjdf5rh3xpvxydyhfbakq7xx7bkrp5qajgid4"; + authors = [ + "David Roundy " + ]; + + }; + "arrayvec" = rec { + crateName = "arrayvec"; + version = "0.5.2"; + edition = "2018"; + sha256 = "12q6hn01x5435bprwlb7w9m7817dyfq55yrl4psygr78bp32zdi3"; + authors = [ + "bluss" + ]; + features = { + "default" = [ "std" ]; + }; + }; + "ascii-canvas" = rec { + crateName = "ascii-canvas"; + version = "2.0.0"; + edition = "2015"; + sha256 = "0a9s8vrbc5jr6ry5ygjyfqmbs9gyya1v6dsxzsczpai8z4nvg3pz"; + authors = [ + "Niko Matsakis " + ]; + dependencies = [ + { + name = "term"; + packageId = "term"; + } + ]; + + }; + "async-compression" = rec { + crateName = "async-compression"; + version = "0.3.8"; + edition = "2018"; + sha256 = "19kkhh9wsr6jcrzfkc3brl4ph8qz1sj2visz0nqs4x034yxwqhsl"; + authors = [ + "Wim Looman " + "Allen Bui " + ]; + dependencies = [ + { + name = "flate2"; + packageId = "flate2"; + optional = true; + } + { + name = "futures-core"; + packageId = "futures-core"; + usesDefaultFeatures = false; + } + { + name = "memchr"; + packageId = "memchr"; + } + { + name = "pin-project-lite"; + packageId = "pin-project-lite"; + } + { + name = "tokio"; + packageId = "tokio"; + optional = true; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "tokio"; + packageId = "tokio"; + usesDefaultFeatures = false; + features = [ "io-util" ]; + } + ]; + features = { + "all" = [ "all-implementations" "all-algorithms" ]; + "all-algorithms" = [ "brotli" "bzip2" "deflate" "gzip" "lzma" "xz" "zlib" "zstd" ]; + "all-implementations" = [ "futures-io" "stream" "tokio-02" "tokio-03" "tokio" ]; + "deflate" = [ "flate2" ]; + "futures-bufread" = [ "futures-io" ]; + "futures-write" = [ "futures-io" ]; + "gzip" = [ "flate2" ]; + "lzma" = [ "xz2" ]; + "stream" = [ "bytes-05" ]; + "xz" = [ "xz2" ]; + "zlib" = [ "flate2" ]; + "zstd" = [ "libzstd" "zstd-safe" ]; + }; + resolvedDefaultFeatures = [ "flate2" "gzip" "tokio" ]; + }; + "async-stream" = rec { + crateName = "async-stream"; + version = "0.3.2"; + edition = "2018"; + sha256 = "0986b72jksg4lndw76py9glry3snc29bbqrna874wl5jwgkp84qp"; + authors = [ + "Carl Lerche " + ]; + 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.3.2"; + edition = "2018"; + sha256 = "024k57iwmmhzvbzacxlkssh45cqlnb8xjlvlsp60jm6fsb4di3k4"; + procMacro = true; + authors = [ + "Carl Lerche " + ]; + 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.51"; + edition = "2018"; + sha256 = "0pis4f9k7nhphp24rkm5lkbnhcz5p78qz6nyh6l1b0gndmvqwca4"; + procMacro = true; + authors = [ + "David Tolnay " + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn"; + features = [ "full" "visit-mut" ]; + } + ]; + + }; + "atomic" = rec { + crateName = "atomic"; + version = "0.5.0"; + edition = "2018"; + sha256 = "10dj429d1942cnjkkrigbl7ckh1vhf10z4xmxlxld318x0lhahf3"; + authors = [ + "Amanieu d'Antras " + ]; + buildDependencies = [ + { + name = "autocfg"; + packageId = "autocfg 1.0.1"; + } + ]; + features = { + "default" = [ "fallback" ]; + }; + resolvedDefaultFeatures = [ "default" "fallback" ]; + }; + "atty" = rec { + crateName = "atty"; + version = "0.2.14"; + edition = "2015"; + sha256 = "1s7yslcs6a28c5vz7jwj63lkfgyx8mx99fdirlhi9lbhhzhrpcyr"; + authors = [ + "softprops " + ]; + dependencies = [ + { + name = "hermit-abi"; + packageId = "hermit-abi"; + target = { target, features }: (target."os" == "hermit"); + } + { + name = "libc"; + packageId = "libc"; + usesDefaultFeatures = false; + target = { target, features }: (target."unix" or false); + } + { + name = "winapi"; + packageId = "winapi"; + target = { target, features }: (target."windows" or false); + features = [ "consoleapi" "processenv" "minwinbase" "minwindef" "winbase" ]; + } + ]; + + }; + "autocfg 0.1.7" = rec { + crateName = "autocfg"; + version = "0.1.7"; + edition = "2015"; + sha256 = "1chwgimpx5z7xbag7krr9d8asxfqbh683qhgl9kn3hxk2l0djj8x"; + authors = [ + "Josh Stone " + ]; + + }; + "autocfg 1.0.1" = rec { + crateName = "autocfg"; + version = "1.0.1"; + edition = "2015"; + sha256 = "0jj6i9zn4gjl03kjvziqdji6rwx8ykz8zk2ngpc331z2g3fk3c6d"; + authors = [ + "Josh Stone " + ]; + + }; + "base-x" = rec { + crateName = "base-x"; + version = "0.2.8"; + edition = "2015"; + sha256 = "12zj7vgrf7wlc46f6xxc14dq1r6z6vmhn51vkdkp04q37lz1ylm4"; + authors = [ + "Alex R. " + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "base64" = rec { + crateName = "base64"; + version = "0.13.0"; + edition = "2018"; + sha256 = "1z82g23mbzjgijkpcrilc7nljpxpvpf7zxf6iyiapkgka2ngwkch"; + authors = [ + "Alice Maz " + "Marshall Pierce " + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "binascii" = rec { + crateName = "binascii"; + version = "0.1.4"; + edition = "2015"; + sha256 = "0wnaglgl72pn5ilv61q6y34w76gbg7crb8ifqk6lsxnq2gajjg9q"; + authors = [ + "Naim A. " + ]; + features = { + "default" = [ "encode" "decode" ]; + }; + resolvedDefaultFeatures = [ "decode" "default" "encode" ]; + }; + "bit-set" = rec { + crateName = "bit-set"; + version = "0.5.2"; + edition = "2015"; + sha256 = "1pjrmpsnad5ipwjsv8ppi0qrhqvgpyn3wfbvk7jy8dga6mhf24bf"; + authors = [ + "Alexis Beingessner " + ]; + dependencies = [ + { + name = "bit-vec"; + packageId = "bit-vec"; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "std" ]; + "std" = [ "bit-vec/std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "bit-vec" = rec { + crateName = "bit-vec"; + version = "0.6.3"; + edition = "2015"; + sha256 = "1ywqjnv60cdh1slhz67psnp422md6jdliji6alq0gmly2xm9p7rl"; + authors = [ + "Alexis Beingessner " + ]; + features = { + "default" = [ "std" ]; + "serde_no_std" = [ "serde/alloc" ]; + "serde_std" = [ "std" "serde/std" ]; + }; + resolvedDefaultFeatures = [ "std" ]; + }; + "bitflags" = rec { + crateName = "bitflags"; + version = "1.2.1"; + edition = "2015"; + sha256 = "14qnd5nq8p2almk79m4m8ydqhd413yaxsyjp5xd19g3mikzf47fg"; + authors = [ + "The Rust Project Developers" + ]; + features = { + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "blake2b_simd" = rec { + crateName = "blake2b_simd"; + version = "0.5.11"; + edition = "2018"; + sha256 = "11y5nm06lpypz65dbxgncs12ckx24i5i4a777ckfhfxd93ili9xg"; + authors = [ + "Jack O'Connor" + ]; + dependencies = [ + { + name = "arrayref"; + packageId = "arrayref"; + } + { + name = "arrayvec"; + packageId = "arrayvec"; + usesDefaultFeatures = false; + } + { + name = "constant_time_eq"; + packageId = "constant_time_eq"; + } + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "block-buffer" = rec { + crateName = "block-buffer"; + version = "0.7.3"; + edition = "2015"; + sha256 = "12v8wizynqin0hqf140kmp9s38q223mp1b0hkqk8j5pk8720v560"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "block-padding"; + packageId = "block-padding"; + } + { + name = "byte-tools"; + packageId = "byte-tools"; + } + { + name = "byteorder"; + packageId = "byteorder"; + usesDefaultFeatures = false; + } + { + name = "generic-array"; + packageId = "generic-array"; + } + ]; + + }; + "block-padding" = rec { + crateName = "block-padding"; + version = "0.1.5"; + edition = "2015"; + sha256 = "1xbkmysiz23vimd17rnsjpw9bgjxipwfslwyygqlkx4in3dxwygs"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "byte-tools"; + packageId = "byte-tools"; + } + ]; + + }; + "bumpalo" = rec { + crateName = "bumpalo"; + version = "3.7.0"; + edition = "2018"; + sha256 = "0ccn025n0x1gc0ijjlabin2xs7dkx5yfagkskr93yw9c06pyfncw"; + authors = [ + "Nick Fitzgerald " + ]; + features = { + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "byte-tools" = rec { + crateName = "byte-tools"; + version = "0.3.1"; + edition = "2015"; + sha256 = "1mqi29wsm8njpl51pfwr31wmpzs5ahlcb40wsjyd92l90ixcmdg3"; + authors = [ + "RustCrypto Developers" + ]; + + }; + "byteorder" = rec { + crateName = "byteorder"; + version = "1.4.3"; + edition = "2018"; + sha256 = "0456lv9xi1a5bcm32arknf33ikv76p3fr9yzki4lb2897p2qkh8l"; + authors = [ + "Andrew Gallant " + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "bytes" = rec { + crateName = "bytes"; + version = "1.0.1"; + edition = "2018"; + sha256 = "0h6h1c8g3yj2b4k8g25gr3246mq985y0kl3z685cs784fr1ww05p"; + authors = [ + "Carl Lerche " + "Sean McArthur " + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "cc" = rec { + crateName = "cc"; + version = "1.0.69"; + edition = "2018"; + crateBin = []; + sha256 = "1cly36mskqby2yqiygls7myd0qjcfrvxcyw2cf4qdqbc5kvc4377"; + authors = [ + "Alex Crichton " + ]; + features = { + "parallel" = [ "jobserver" ]; + }; + }; + "cfg-if" = rec { + crateName = "cfg-if"; + version = "1.0.0"; + edition = "2018"; + sha256 = "1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds"; + authors = [ + "Alex Crichton " + ]; + features = { + "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; + }; + }; + "chrono" = rec { + crateName = "chrono"; + version = "0.4.19"; + edition = "2015"; + sha256 = "0wyfl6c00vhfl562spnfcna3zkw8jqvcp652m9iskhl8j26dc2k7"; + authors = [ + "Kang Seonghoon " + "Brandon W Maister " + ]; + dependencies = [ + { + name = "libc"; + packageId = "libc"; + optional = true; + } + { + name = "num-integer"; + packageId = "num-integer"; + usesDefaultFeatures = false; + } + { + name = "num-traits"; + packageId = "num-traits"; + usesDefaultFeatures = false; + } + { + name = "time"; + packageId = "time 0.1.43"; + optional = true; + } + { + name = "winapi"; + packageId = "winapi"; + optional = true; + target = { target, features }: (target."windows" or false); + features = [ "std" "minwinbase" "minwindef" "timezoneapi" ]; + } + ]; + features = { + "clock" = [ "libc" "std" "winapi" ]; + "default" = [ "clock" "std" "oldtime" ]; + "oldtime" = [ "time" ]; + "unstable-locales" = [ "pure-rust-locales" "alloc" ]; + "wasmbind" = [ "wasm-bindgen" "js-sys" ]; + }; + resolvedDefaultFeatures = [ "clock" "default" "libc" "oldtime" "std" "time" "winapi" ]; + }; + "clap" = rec { + crateName = "clap"; + version = "3.0.0-beta.2"; + edition = "2018"; + sha256 = "0hm1kivw6190rxbfqhdr4hqwlrijvwh90i3d9dyyw0d5k0chdlab"; + authors = [ + "Kevin K. " + "Clap Maintainers" + ]; + dependencies = [ + { + name = "atty"; + packageId = "atty"; + optional = true; + } + { + name = "bitflags"; + packageId = "bitflags"; + } + { + name = "clap_derive"; + packageId = "clap_derive"; + optional = true; + } + { + name = "indexmap"; + packageId = "indexmap"; + } + { + name = "lazy_static"; + packageId = "lazy_static"; + optional = true; + } + { + name = "os_str_bytes"; + packageId = "os_str_bytes"; + features = [ "raw" ]; + } + { + name = "strsim"; + packageId = "strsim"; + optional = true; + } + { + name = "termcolor"; + packageId = "termcolor"; + optional = true; + } + { + name = "textwrap"; + packageId = "textwrap"; + } + { + name = "unicode-width"; + packageId = "unicode-width"; + } + { + name = "vec_map"; + packageId = "vec_map"; + } + ]; + devDependencies = [ + { + name = "lazy_static"; + packageId = "lazy_static"; + } + ]; + features = { + "cargo" = [ "lazy_static" ]; + "color" = [ "atty" "termcolor" ]; + "debug" = [ "clap_derive/debug" ]; + "default" = [ "suggestions" "color" "derive" "std" "cargo" ]; + "derive" = [ "clap_derive" "lazy_static" ]; + "doc" = [ "yaml" "regex" ]; + "suggestions" = [ "strsim" ]; + "unstable" = [ "clap_derive/unstable" ]; + "wrap_help" = [ "terminal_size" "textwrap/terminal_size" ]; + "yaml" = [ "yaml-rust" ]; + }; + resolvedDefaultFeatures = [ "atty" "cargo" "clap_derive" "color" "default" "derive" "lazy_static" "std" "strsim" "suggestions" "termcolor" ]; + }; + "clap_derive" = rec { + crateName = "clap_derive"; + version = "3.0.0-beta.2"; + edition = "2018"; + sha256 = "18cn82jhcha7m0nkpi1a03jx8k7aaq5kxfcxnsqpaa8ih5dp23rp"; + procMacro = true; + authors = [ + "Guillaume Pinot " + "Clap Maintainers" + ]; + dependencies = [ + { + name = "heck"; + packageId = "heck"; + } + { + name = "proc-macro-error"; + packageId = "proc-macro-error"; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn"; + features = [ "full" ]; + } + ]; + features = { + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "cloudabi" = rec { + crateName = "cloudabi"; + version = "0.0.3"; + edition = "2015"; + sha256 = "0kxcg83jlihy0phnd2g8c2c303px3l2p3pkjz357ll6llnd5pz6x"; + libPath = "cloudabi.rs"; + authors = [ + "Nuxi (https://nuxi.nl/) and contributors" + ]; + dependencies = [ + { + name = "bitflags"; + packageId = "bitflags"; + optional = true; + } + ]; + features = { + "default" = [ "bitflags" ]; + }; + resolvedDefaultFeatures = [ "bitflags" "default" ]; + }; + "const_fn" = rec { + crateName = "const_fn"; + version = "0.4.8"; + edition = "2018"; + sha256 = "1rzn3ifnsgqh0lmzkqgm7jjjzwkykfysnb7gq7w3q2v9sl7zlb7r"; + procMacro = true; + authors = [ + "Taiki Endo " + ]; + + }; + "constant_time_eq" = rec { + crateName = "constant_time_eq"; + version = "0.1.5"; + edition = "2015"; + sha256 = "1g3vp04qzmk6cpzrd19yci6a95m7ap6wy7wkwgiy2pjklklrfl14"; + authors = [ + "Cesar Eduardo Barros " + ]; + + }; + "cookie" = rec { + crateName = "cookie"; + version = "0.15.1"; + edition = "2018"; + sha256 = "03gql9c2l0wg3hpfp67wg2ns21wysk0xsjxwdbjrf0s6grrcgwfm"; + authors = [ + "Sergio Benitez " + "Alex Crichton " + ]; + dependencies = [ + { + name = "percent-encoding"; + packageId = "percent-encoding"; + optional = true; + } + { + name = "time"; + packageId = "time 0.2.27"; + usesDefaultFeatures = false; + features = [ "std" ]; + } + ]; + buildDependencies = [ + { + name = "version_check"; + packageId = "version_check"; + } + ]; + features = { + "key-expansion" = [ "sha2" "hkdf" ]; + "percent-encode" = [ "percent-encoding" ]; + "private" = [ "aes-gcm" "base64" "rand" "subtle" ]; + "secure" = [ "private" "signed" "key-expansion" ]; + "signed" = [ "hmac" "sha2" "base64" "rand" "subtle" ]; + }; + resolvedDefaultFeatures = [ "percent-encode" "percent-encoding" ]; + }; + "crc32fast" = rec { + crateName = "crc32fast"; + version = "1.2.1"; + edition = "2015"; + sha256 = "06ivjlkzcxxxk7nyshc44aql4zjpmvirq46vmzrakdjax3n6y5c1"; + authors = [ + "Sam Rijs " + "Alex Crichton " + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "crossbeam-utils" = rec { + crateName = "crossbeam-utils"; + version = "0.8.5"; + edition = "2018"; + sha256 = "1ny481cx8a5pdknypb41jqym03dl8x26i2ldyyp3yb3zrq8zqb6q"; + authors = [ + "The Crossbeam Project Developers" + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + { + name = "lazy_static"; + packageId = "lazy_static"; + optional = true; + } + ]; + features = { + "default" = [ "std" ]; + "std" = [ "lazy_static" ]; + }; + resolvedDefaultFeatures = [ "default" "lazy_static" "std" ]; + }; + "devise" = rec { + crateName = "devise"; + version = "0.3.1"; + edition = "2015"; + sha256 = "15dmibnykic2a1ndi66shyvxmpfysnhf05lg2iv8871g0w5miish"; + authors = [ + "Sergio Benitez " + ]; + dependencies = [ + { + name = "devise_codegen"; + packageId = "devise_codegen"; + } + { + name = "devise_core"; + packageId = "devise_core"; + } + ]; + + }; + "devise_codegen" = rec { + crateName = "devise_codegen"; + version = "0.3.1"; + edition = "2015"; + sha256 = "1cp7nnfwvjp6wfq11n0ffjjrwfa1wbsb58g1bz3ha6z5lvkp6g0j"; + procMacro = true; + authors = [ + "Sergio Benitez " + ]; + dependencies = [ + { + name = "devise_core"; + packageId = "devise_core"; + } + { + name = "quote"; + packageId = "quote"; + } + ]; + + }; + "devise_core" = rec { + crateName = "devise_core"; + version = "0.3.1"; + edition = "2015"; + sha256 = "1l00qiih4z14ai0c3s16nlvw0kv4p07ygi6a0ms0knc78xpz87l4"; + authors = [ + "Sergio Benitez " + ]; + dependencies = [ + { + name = "bitflags"; + packageId = "bitflags"; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "proc-macro2-diagnostics"; + packageId = "proc-macro2-diagnostics"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn"; + features = [ "full" "parsing" "extra-traits" "visit-mut" ]; + } + ]; + + }; + "diff" = rec { + crateName = "diff"; + version = "0.1.12"; + edition = "2015"; + sha256 = "16b40bhsa2qgvgvxs983l625pkxyp6m0mzmpwg2605cvj53yl98f"; + authors = [ + "Utkarsh Kukreti " + ]; + + }; + "digest" = rec { + crateName = "digest"; + version = "0.8.1"; + edition = "2015"; + sha256 = "1madjl27f3kj5ql7kwgvb9c8b7yb7bv7yfgx7rqzj4i3fp4cil7k"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "generic-array"; + packageId = "generic-array"; + } + ]; + features = { + "dev" = [ "blobby" ]; + }; + resolvedDefaultFeatures = [ "std" ]; + }; + "dirs" = rec { + crateName = "dirs"; + version = "1.0.5"; + edition = "2015"; + sha256 = "009rrhzj9pxyncmm2vhlj70npg0cgggv2hjbbkiwdl9vccq8kmrz"; + authors = [ + "Simon Ochsenreither " + ]; + dependencies = [ + { + name = "libc"; + packageId = "libc"; + target = { target, features }: (target."unix" or false); + } + { + name = "redox_users"; + packageId = "redox_users"; + target = { target, features }: (target."os" == "redox"); + } + { + name = "winapi"; + packageId = "winapi"; + target = { target, features }: (target."windows" or false); + features = [ "knownfolders" "objbase" "shlobj" "winbase" "winerror" ]; + } + ]; + + }; + "discard" = rec { + crateName = "discard"; + version = "1.0.4"; + edition = "2015"; + sha256 = "1h67ni5bxvg95s91wgicily4ix7lcw7cq0a5gy9njrybaibhyb91"; + authors = [ + "Pauan " + ]; + + }; + "docopt" = rec { + crateName = "docopt"; + version = "1.1.1"; + edition = "2018"; + crateBin = []; + sha256 = "07x5g52n6fzilxhk5220caznkvdnzzvahlzrzkmgj8y88sc12gvz"; + authors = [ + "Andrew Gallant " + ]; + dependencies = [ + { + name = "lazy_static"; + packageId = "lazy_static"; + } + { + name = "regex"; + packageId = "regex"; + usesDefaultFeatures = false; + features = [ "std" "unicode" ]; + } + { + name = "serde"; + packageId = "serde"; + features = [ "derive" ]; + } + { + name = "strsim"; + packageId = "strsim"; + } + ]; + + }; + "either" = rec { + crateName = "either"; + version = "1.6.1"; + edition = "2015"; + sha256 = "0mwl9vngqf5jvrhmhn9x60kr5hivxyjxbmby2pybncxfqhf4z3g7"; + authors = [ + "bluss" + ]; + features = { + "default" = [ "use_std" ]; + }; + resolvedDefaultFeatures = [ "default" "use_std" ]; + }; + "ena" = rec { + crateName = "ena"; + version = "0.13.1"; + edition = "2015"; + sha256 = "0dkggq0qwv140y2kjfd4spp77zi3v7vnpm4bfy7s7r4cla7xqi49"; + authors = [ + "Niko Matsakis " + ]; + dependencies = [ + { + name = "log"; + packageId = "log"; + } + ]; + features = { + "congruence-closure" = [ "petgraph" ]; + "persistent" = [ "dogged" ]; + }; + }; + "encoding_rs" = rec { + crateName = "encoding_rs"; + version = "0.8.28"; + edition = "2018"; + sha256 = "0rf0r99q4kgjrx22kx7pjyjg4lm21599y3ggvy3hzj2spi7h5pw0"; + authors = [ + "Henri Sivonen " + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + ]; + features = { + "fast-legacy-encode" = [ "fast-hangul-encode" "fast-hanja-encode" "fast-kanji-encode" "fast-gb-hanzi-encode" "fast-big5-hanzi-encode" ]; + "simd-accel" = [ "packed_simd" "packed_simd/into_bits" ]; + }; + }; + "fake-simd" = rec { + crateName = "fake-simd"; + version = "0.1.2"; + edition = "2015"; + sha256 = "1vfylvk4va2ivqx85603lyqqp0zk52cgbs4n5nfbbbqx577qm2p8"; + authors = [ + "The Rust-Crypto Project Developers" + ]; + + }; + "figment" = rec { + crateName = "figment"; + version = "0.10.6"; + edition = "2018"; + sha256 = "1pr2w6pldkkjavj1sacn9xiibzhlf13ply0gnnxan616qy9442vr"; + authors = [ + "Sergio Benitez " + ]; + dependencies = [ + { + name = "atomic"; + packageId = "atomic"; + target = { target, features }: ((target."pointer_width" == "8") || (target."pointer_width" == "16") || (target."pointer_width" == "32")); + } + { + name = "pear"; + packageId = "pear"; + optional = true; + } + { + name = "serde"; + packageId = "serde"; + } + { + name = "toml"; + packageId = "toml"; + optional = true; + } + { + name = "uncased"; + packageId = "uncased"; + } + ]; + buildDependencies = [ + { + name = "version_check"; + packageId = "version_check"; + } + ]; + devDependencies = [ + { + name = "serde"; + packageId = "serde"; + features = [ "derive" ]; + } + ]; + features = { + "env" = [ "pear" "parse-value" ]; + "json" = [ "serde_json" ]; + "parse-value" = [ "pear" ]; + "test" = [ "tempfile" "parking_lot" ]; + "yaml" = [ "serde_yaml" ]; + }; + resolvedDefaultFeatures = [ "env" "parse-value" "pear" "toml" ]; + }; + "fixedbitset" = rec { + crateName = "fixedbitset"; + version = "0.1.9"; + edition = "2015"; + sha256 = "0czam11mi80dbyhf4rd4lz0ihcf7vkfchrdcrn45wbs0h40dxm46"; + authors = [ + "bluss" + ]; + + }; + "flate2" = rec { + crateName = "flate2"; + version = "1.0.20"; + edition = "2018"; + sha256 = "1q5b4r2rclhjbcxlbv5231avp1y6y8bynrf5v3brdzhhvr9yqfnd"; + authors = [ + "Alex Crichton " + "Josh Triplett " + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + { + name = "crc32fast"; + packageId = "crc32fast"; + } + { + name = "libc"; + packageId = "libc"; + } + { + name = "miniz_oxide"; + packageId = "miniz_oxide"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "miniz_oxide"; + packageId = "miniz_oxide"; + usesDefaultFeatures = false; + target = { target, features }: ((target."arch" == "wasm32") && (!(target."os" == "emscripten"))); + } + ]; + features = { + "cloudflare_zlib" = [ "any_zlib" "cloudflare-zlib-sys" ]; + "default" = [ "rust_backend" ]; + "rust_backend" = [ "miniz_oxide" ]; + "tokio" = [ "tokio-io" "futures" ]; + "zlib" = [ "any_zlib" "libz-sys" ]; + "zlib-ng-compat" = [ "zlib" "libz-sys/zlib-ng" ]; + }; + resolvedDefaultFeatures = [ "default" "miniz_oxide" "rust_backend" ]; + }; + "fnv" = rec { + crateName = "fnv"; + version = "1.0.7"; + edition = "2015"; + sha256 = "1hc2mcqha06aibcaza94vbi81j6pr9a1bbxrxjfhc91zin8yr7iz"; + libPath = "lib.rs"; + authors = [ + "Alex Crichton " + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "form_urlencoded" = rec { + crateName = "form_urlencoded"; + version = "1.0.1"; + edition = "2018"; + sha256 = "1491fmakavcmsjbm3q6iy0bhmn9l422jasdhzx5hkljgza3mmhjz"; + authors = [ + "The rust-url developers" + ]; + dependencies = [ + { + name = "matches"; + packageId = "matches"; + } + { + name = "percent-encoding"; + packageId = "percent-encoding"; + } + ]; + + }; + "fuchsia-cprng" = rec { + crateName = "fuchsia-cprng"; + version = "0.1.1"; + edition = "2018"; + sha256 = "1fnkqrbz7ixxzsb04bsz9p0zzazanma8znfdqjvh39n14vapfvx0"; + authors = [ + "Erick Tryzelaar " + ]; + + }; + "futures" = rec { + crateName = "futures"; + version = "0.3.16"; + edition = "2018"; + sha256 = "12rznp5gg0sf3w2ly2zbcm4shnhcdy1igmvpkzlrrz5dhvs01p0s"; + authors = [ + "Alex Crichton " + ]; + 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" ]; + "io-compat" = [ "compat" "futures-util/io-compat" ]; + "read-initializer" = [ "futures-io/read-initializer" "futures-util/read-initializer" ]; + "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" "default" "executor" "futures-executor" "std" ]; + }; + "futures-channel" = rec { + crateName = "futures-channel"; + version = "0.3.16"; + edition = "2018"; + sha256 = "1yczc8hdwaa7lw52bh2xnarqjfs2bmfwj169kcylwvjzh08j9vbl"; + authors = [ + "Alex Crichton " + ]; + 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" ]; + "sink" = [ "futures-sink" ]; + "std" = [ "alloc" "futures-core/std" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "futures-sink" "sink" "std" ]; + }; + "futures-core" = rec { + crateName = "futures-core"; + version = "0.3.16"; + edition = "2018"; + sha256 = "168zy072rgzkvi3hsbjzhn8ynwy60a4dwffv0cvh7zzxlysb2ldg"; + authors = [ + "Alex Crichton " + ]; + features = { + "default" = [ "std" ]; + "std" = [ "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "std" ]; + }; + "futures-executor" = rec { + crateName = "futures-executor"; + version = "0.3.16"; + edition = "2018"; + sha256 = "073nakpp5z0irlkqgr0fgcnwv47f79qr5f1p2kiilzmqaxd563ad"; + authors = [ + "Alex Crichton " + ]; + 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" ]; + "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.16"; + edition = "2018"; + sha256 = "10hms4pzsxay7s9qclp78xis9mlklzf5ris6y9p3m3q6jg1hc3hb"; + authors = [ + "Alex Crichton " + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "std" ]; + }; + "futures-macro" = rec { + crateName = "futures-macro"; + version = "0.3.16"; + edition = "2018"; + sha256 = "0mxcw0hjsx78zd0r1wz3928ycwmac81wjvywykvqvysnx6x16jf5"; + procMacro = true; + authors = [ + "Taylor Cramer " + "Taiki Endo " + ]; + dependencies = [ + { + name = "proc-macro-hack"; + packageId = "proc-macro-hack"; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn"; + features = [ "full" ]; + } + ]; + buildDependencies = [ + { + name = "autocfg"; + packageId = "autocfg 1.0.1"; + } + ]; + + }; + "futures-sink" = rec { + crateName = "futures-sink"; + version = "0.3.16"; + edition = "2018"; + sha256 = "0lsbxbz72a82hyld35wz69k7l6i07krsafkl2ac12g9ncym0mwy0"; + authors = [ + "Alex Crichton " + ]; + features = { + "default" = [ "std" ]; + "std" = [ "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "std" ]; + }; + "futures-task" = rec { + crateName = "futures-task"; + version = "0.3.16"; + edition = "2018"; + sha256 = "1wlr0yl3vjk24281n1iz3yjxj4782fnzcqcmj2zg65q0cyc4mrdv"; + authors = [ + "Alex Crichton " + ]; + features = { + "default" = [ "std" ]; + "std" = [ "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" "std" ]; + }; + "futures-util" = rec { + crateName = "futures-util"; + version = "0.3.16"; + edition = "2018"; + sha256 = "0y2dvm4r5cbw0mqw138zssswrq235kl4j050h624mr2qzmmq9sv7"; + authors = [ + "Alex Crichton " + ]; + dependencies = [ + { + 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"; + } + { + name = "pin-utils"; + packageId = "pin-utils"; + } + { + name = "proc-macro-hack"; + packageId = "proc-macro-hack"; + optional = true; + } + { + name = "proc-macro-nested"; + packageId = "proc-macro-nested"; + optional = true; + } + { + name = "slab"; + packageId = "slab"; + optional = true; + } + ]; + buildDependencies = [ + { + name = "autocfg"; + packageId = "autocfg 1.0.1"; + } + ]; + features = { + "alloc" = [ "futures-core/alloc" "futures-task/alloc" ]; + "async-await-macro" = [ "async-await" "futures-macro" "proc-macro-hack" "proc-macro-nested" ]; + "channel" = [ "std" "futures-channel" ]; + "compat" = [ "std" "futures_01" ]; + "default" = [ "std" "async-await" "async-await-macro" ]; + "io" = [ "std" "futures-io" "memchr" ]; + "io-compat" = [ "io" "compat" "tokio-io" ]; + "read-initializer" = [ "io" "futures-io/read-initializer" "futures-io/unstable" ]; + "sink" = [ "futures-sink" ]; + "std" = [ "alloc" "futures-core/std" "futures-task/std" "slab" ]; + "unstable" = [ "futures-core/unstable" "futures-task/unstable" ]; + "write-all-vectored" = [ "io" ]; + }; + resolvedDefaultFeatures = [ "alloc" "async-await" "async-await-macro" "channel" "default" "futures-channel" "futures-io" "futures-macro" "futures-sink" "io" "memchr" "proc-macro-hack" "proc-macro-nested" "sink" "slab" "std" ]; + }; + "generator" = rec { + crateName = "generator"; + version = "0.7.0"; + edition = "2018"; + sha256 = "1vhj3f0rf4mlh5vz7pz5rxmgry1cc62x21mf9ld1r292m2f2gnf1"; + authors = [ + "Xudong Huang " + ]; + dependencies = [ + { + name = "libc"; + packageId = "libc"; + target = { target, features }: (target."unix" or false); + } + { + name = "log"; + packageId = "log"; + } + { + name = "winapi"; + packageId = "winapi"; + target = { target, features }: (target."windows" or false); + features = [ "memoryapi" "sysinfoapi" ]; + } + ]; + buildDependencies = [ + { + name = "cc"; + packageId = "cc"; + } + { + name = "rustversion"; + packageId = "rustversion"; + } + ]; + + }; + "generic-array" = rec { + crateName = "generic-array"; + version = "0.12.4"; + edition = "2015"; + sha256 = "1gfpay78vijl9vrwl1k9v7fbvbhkhcmnrk4kfg9l6x24y4s9zpzz"; + libName = "generic_array"; + authors = [ + "Bartłomiej Kamiński " + "Aaron Trent " + ]; + dependencies = [ + { + name = "typenum"; + packageId = "typenum"; + } + ]; + + }; + "getrandom 0.1.16" = rec { + crateName = "getrandom"; + version = "0.1.16"; + edition = "2018"; + sha256 = "1kjzmz60qx9mn615ks1akjbf36n3lkv27zfwbcam0fzmj56wphwg"; + authors = [ + "The Rand Project Developers" + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + { + name = "libc"; + packageId = "libc"; + usesDefaultFeatures = false; + target = { target, features }: (target."unix" or false); + } + { + name = "wasi"; + packageId = "wasi 0.9.0+wasi-snapshot-preview1"; + target = { target, features }: (target."os" == "wasi"); + } + ]; + features = { + "rustc-dep-of-std" = [ "compiler_builtins" "core" ]; + "test-in-browser" = [ "wasm-bindgen" ]; + "wasm-bindgen" = [ "bindgen" "js-sys" ]; + }; + }; + "getrandom 0.2.3" = rec { + crateName = "getrandom"; + version = "0.2.3"; + edition = "2018"; + sha256 = "0lr7mnkvnzdh1xxmwmhhbm4gwg29k3m2rzhpjmjm4k2jcfa9kkbz"; + authors = [ + "The Rand Project Developers" + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + { + name = "libc"; + packageId = "libc"; + usesDefaultFeatures = false; + target = { target, features }: (target."unix" or false); + } + { + name = "wasi"; + packageId = "wasi 0.10.2+wasi-snapshot-preview1"; + target = { target, features }: (target."os" == "wasi"); + } + ]; + features = { + "js" = [ "wasm-bindgen" "js-sys" ]; + "rustc-dep-of-std" = [ "compiler_builtins" "core" "libc/rustc-dep-of-std" "wasi/rustc-dep-of-std" ]; + }; + resolvedDefaultFeatures = [ "std" ]; + }; + "glob" = rec { + crateName = "glob"; + version = "0.3.0"; + edition = "2015"; + sha256 = "0x25wfr7vg3mzxc9x05dcphvd3nwlcmbnxrvwcvrrdwplcrrk4cv"; + authors = [ + "The Rust Project Developers" + ]; + + }; + "h2" = rec { + crateName = "h2"; + version = "0.3.3"; + edition = "2018"; + sha256 = "09kpwgqpwlk282l9jmwvjwm3dssvvjaz60w93xa3zdphxv246lw2"; + authors = [ + "Carl Lerche " + "Sean McArthur " + ]; + dependencies = [ + { + name = "bytes"; + packageId = "bytes"; + } + { + 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"; + features = [ "std" ]; + } + { + name = "slab"; + packageId = "slab"; + } + { + name = "tokio"; + packageId = "tokio"; + features = [ "io-util" ]; + } + { + name = "tokio-util"; + packageId = "tokio-util"; + features = [ "codec" ]; + } + { + name = "tracing"; + packageId = "tracing"; + usesDefaultFeatures = false; + features = [ "std" ]; + } + ]; + devDependencies = [ + { + name = "tokio"; + packageId = "tokio"; + features = [ "rt-multi-thread" "macros" "sync" "net" ]; + } + ]; + features = { + }; + }; + "hashbrown" = rec { + crateName = "hashbrown"; + version = "0.11.2"; + edition = "2018"; + sha256 = "0vkjsf5nzs7qcia5ya79j9sq2p1caz4crrncr1675wwyj3ag0pmb"; + authors = [ + "Amanieu d'Antras " + ]; + features = { + "ahash-compile-time-rng" = [ "ahash/compile-time-rng" ]; + "default" = [ "ahash" "inline-more" ]; + "rustc-dep-of-std" = [ "nightly" "core" "compiler_builtins" "alloc" "rustc-internal-api" ]; + }; + resolvedDefaultFeatures = [ "raw" ]; + }; + "heck" = rec { + crateName = "heck"; + version = "0.3.3"; + edition = "2018"; + sha256 = "0b0kkr790p66lvzn9nsmfjvydrbmh9z5gb664jchwgw64vxiwqkd"; + authors = [ + "Without Boats " + ]; + 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 = { + "rustc-dep-of-std" = [ "core" "compiler_builtins/rustc-dep-of-std" "libc/rustc-dep-of-std" ]; + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "htmlescape" = rec { + crateName = "htmlescape"; + version = "0.3.1"; + edition = "2015"; + sha256 = "0qria8paf19qy5sgzzk3iiii9fp2j7spbhqf0zjxwrg7v9c500p9"; + authors = [ + "Viktor Dahl " + ]; + + }; + "http" = rec { + crateName = "http"; + version = "0.2.4"; + edition = "2018"; + sha256 = "04fcnqbnqmrsnphz5lbca2plascsm8bib5csd518bqj7qyd8qzjj"; + authors = [ + "Alex Crichton " + "Carl Lerche " + "Sean McArthur " + ]; + dependencies = [ + { + name = "bytes"; + packageId = "bytes"; + } + { + name = "fnv"; + packageId = "fnv"; + } + { + name = "itoa"; + packageId = "itoa"; + } + ]; + + }; + "http-body" = rec { + crateName = "http-body"; + version = "0.4.2"; + edition = "2018"; + sha256 = "1abmxi1mgv4qxawn4v1bxmp7b7ac835mg7isy2q6sy70w15s3nk0"; + authors = [ + "Carl Lerche " + "Lucio Franco " + "Sean McArthur " + ]; + dependencies = [ + { + name = "bytes"; + packageId = "bytes"; + } + { + name = "http"; + packageId = "http"; + } + { + name = "pin-project-lite"; + packageId = "pin-project-lite"; + } + ]; + + }; + "httparse" = rec { + crateName = "httparse"; + version = "1.4.1"; + edition = "2015"; + sha256 = "0s2y7ki3sxyf1ynp0mm2k3mgafigy23d7g0rzci3rs9pdrhppa7k"; + authors = [ + "Sean McArthur " + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "httpdate" = rec { + crateName = "httpdate"; + version = "1.0.1"; + edition = "2018"; + sha256 = "0h240ck2xlp62dqfhfp6g45984avsmh1pkcgjmyywgzkr2kbhmk4"; + authors = [ + "Pyfisch " + ]; + + }; + "hyper" = rec { + crateName = "hyper"; + version = "0.14.11"; + edition = "2018"; + sha256 = "04gvzwq66p5dv3spdcp19ccjkjj44bf82yy9a9inxkzb38nwyq8b";type = [ "lib" "staticlib" "cdylib" ]; + authors = [ + "Sean McArthur " + ]; + dependencies = [ + { + name = "bytes"; + packageId = "bytes"; + } + { + 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"; + optional = true; + } + { + name = "http"; + packageId = "http"; + } + { + name = "http-body"; + packageId = "http-body"; + } + { + name = "httparse"; + packageId = "httparse"; + } + { + name = "httpdate"; + packageId = "httpdate"; + } + { + name = "itoa"; + packageId = "itoa"; + } + { + name = "pin-project-lite"; + packageId = "pin-project-lite"; + } + { + 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 = [ "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" "io-util" "rt" "rt-multi-thread" "sync" "time" "test-util" ]; + } + ]; + features = { + "ffi" = [ "libc" ]; + "full" = [ "client" "http1" "http2" "server" "stream" "runtime" ]; + "http2" = [ "h2" ]; + "runtime" = [ "tcp" "tokio/rt" ]; + "tcp" = [ "socket2" "tokio/net" "tokio/rt" "tokio/time" ]; + }; + resolvedDefaultFeatures = [ "client" "h2" "http1" "http2" "runtime" "server" "socket2" "stream" "tcp" ]; + }; + "hyper-rustls" = rec { + crateName = "hyper-rustls"; + version = "0.22.1"; + edition = "2018"; + sha256 = "0r2szp06nzqx6gblcw69kwx8afjp218fc083kfpw0i3d66bpm7sz"; + authors = [ + "Joseph Birr-Pixton " + ]; + dependencies = [ + { + name = "futures-util"; + packageId = "futures-util"; + } + { + name = "hyper"; + packageId = "hyper"; + usesDefaultFeatures = false; + features = [ "client" "http1" ]; + } + { + name = "log"; + packageId = "log"; + } + { + name = "rustls"; + packageId = "rustls"; + } + { + name = "tokio"; + packageId = "tokio"; + } + { + name = "tokio-rustls"; + packageId = "tokio-rustls"; + } + { + name = "webpki"; + packageId = "webpki"; + } + ]; + devDependencies = [ + { + name = "hyper"; + packageId = "hyper"; + features = [ "full" ]; + } + { + name = "tokio"; + packageId = "tokio"; + features = [ "io-std" "macros" "net" "rt-multi-thread" ]; + } + ]; + features = { + "default" = [ "native-tokio" ]; + "native-tokio" = [ "tokio-runtime" "rustls-native-certs" ]; + "tokio-runtime" = [ "hyper/runtime" "ct-logs" ]; + "webpki-tokio" = [ "tokio-runtime" "webpki-roots" ]; + }; + }; + "idna" = rec { + crateName = "idna"; + version = "0.2.3"; + edition = "2018"; + sha256 = "1y7ca2w5qp9msgl57n03zqp78gq1bk2crqzg6kv7a542mdphm2j1"; + authors = [ + "The rust-url developers" + ]; + dependencies = [ + { + name = "matches"; + packageId = "matches"; + } + { + name = "unicode-bidi"; + packageId = "unicode-bidi"; + } + { + name = "unicode-normalization"; + packageId = "unicode-normalization"; + } + ]; + + }; + "indexmap" = rec { + crateName = "indexmap"; + version = "1.7.0"; + edition = "2018"; + sha256 = "19b2zwfajhsfcgny0clv8y4jppy704znfhv8nv2dw9a18l2kcqxw"; + authors = [ + "bluss" + "Josh Stone " + ]; + dependencies = [ + { + name = "hashbrown"; + packageId = "hashbrown"; + usesDefaultFeatures = false; + features = [ "raw" ]; + } + { + name = "serde"; + packageId = "serde"; + optional = true; + usesDefaultFeatures = false; + } + ]; + buildDependencies = [ + { + name = "autocfg"; + packageId = "autocfg 1.0.1"; + } + ]; + features = { + "serde-1" = [ "serde" ]; + }; + resolvedDefaultFeatures = [ "serde" "serde-1" "std" ]; + }; + "inlinable_string" = rec { + crateName = "inlinable_string"; + version = "0.1.14"; + edition = "2018"; + sha256 = "0xxddkvy927rzswzxqf658fzqlwzvqi5xr4wcmczvsd04f0k151h"; + authors = [ + "Nick Fitzgerald " + ]; + features = { + "no_std" = [ "bare-io" ]; + }; + }; + "instant" = rec { + crateName = "instant"; + version = "0.1.10"; + edition = "2018"; + sha256 = "0ka75wmkh22bkxjw5smhmlwl3xpqnj2xv50w03pmgl892a5k5q5y"; + authors = [ + "sebcrozet " + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + ]; + features = { + "now" = [ "time" ]; + "wasm-bindgen" = [ "js-sys" "wasm-bindgen_rs" "web-sys" ]; + }; + }; + "ipnet" = rec { + crateName = "ipnet"; + version = "2.3.1"; + edition = "2015"; + sha256 = "1ad32j3kkbb0bgf5whzfkdw6843ywr48245dhk7c9gny5r7xdwk8"; + authors = [ + "Kris Price " + ]; + + }; + "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" = rec { + crateName = "itoa"; + version = "0.4.7"; + edition = "2015"; + sha256 = "0di7fggbknwfjcw8cgzm1dnm3ik32l2m1f7nmyh8ipmh45h069fx"; + authors = [ + "David Tolnay " + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "js-sys" = rec { + crateName = "js-sys"; + version = "0.3.52"; + edition = "2018"; + sha256 = "0lk7c7n9q71dlvpvh41v7gmp3n2nqy7hcvh5pr2sx2k3lry1nyff"; + authors = [ + "The wasm-bindgen Developers" + ]; + dependencies = [ + { + name = "wasm-bindgen"; + packageId = "wasm-bindgen"; + } + ]; + + }; + "lalrpop" = rec { + crateName = "lalrpop"; + version = "0.17.2"; + edition = "2015"; + crateBin = []; + sha256 = "1nv7ma8cgw3r1fcma7gy06fwwlpl4fkz91mxv5kjhiaxwyc3dp34"; + authors = [ + "Niko Matsakis " + ]; + dependencies = [ + { + name = "ascii-canvas"; + packageId = "ascii-canvas"; + } + { + name = "atty"; + packageId = "atty"; + } + { + name = "bit-set"; + packageId = "bit-set"; + } + { + name = "diff"; + packageId = "diff"; + } + { + name = "docopt"; + packageId = "docopt"; + } + { + name = "ena"; + packageId = "ena"; + } + { + name = "itertools"; + packageId = "itertools"; + } + { + name = "lalrpop-util"; + packageId = "lalrpop-util"; + } + { + name = "petgraph"; + packageId = "petgraph"; + } + { + name = "regex"; + packageId = "regex"; + } + { + name = "regex-syntax"; + packageId = "regex-syntax"; + } + { + name = "serde"; + packageId = "serde"; + } + { + name = "serde_derive"; + packageId = "serde_derive"; + } + { + name = "sha2"; + packageId = "sha2"; + } + { + name = "string_cache"; + packageId = "string_cache"; + } + { + name = "term"; + packageId = "term"; + } + { + name = "unicode-xid"; + packageId = "unicode-xid 0.1.0"; + } + ]; + features = { + }; + }; + "lalrpop-util" = rec { + crateName = "lalrpop-util"; + version = "0.17.2"; + edition = "2015"; + sha256 = "0z4bjn3g9232n1im5p6mn9mwlvw5aj5iac6hbjmljqxkhf3d2xy2"; + authors = [ + "Niko Matsakis " + ]; + + }; + "language-tags" = rec { + crateName = "language-tags"; + version = "0.2.2"; + edition = "2015"; + sha256 = "16hrjdpa827carq5x4b8zhas24d8kg4s16m6nmmn1kb7cr5qh7d9"; + authors = [ + "Pyfisch " + ]; + features = { + "heap_size" = [ "heapsize" "heapsize_plugin" ]; + }; + }; + "lazy_static" = rec { + crateName = "lazy_static"; + version = "1.4.0"; + edition = "2015"; + sha256 = "0in6ikhw8mgl33wjv6q6xfrb5b9jr16q8ygjy803fay4zcisvaz2"; + authors = [ + "Marvin Löbel " + ]; + features = { + "spin_no_std" = [ "spin" ]; + }; + }; + "libc" = rec { + crateName = "libc"; + version = "0.2.98"; + edition = "2015"; + sha256 = "144728k6d98k3hplzklqn18a134nq6nw0jzdxy1s98sx2xvzw31j"; + authors = [ + "The Rust Project Developers" + ]; + features = { + "default" = [ "std" ]; + "rustc-dep-of-std" = [ "align" "rustc-std-workspace-core" ]; + "use_std" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "lock_api" = rec { + crateName = "lock_api"; + version = "0.4.4"; + edition = "2018"; + sha256 = "1sq7pw7h7jbfvnv5nq3vm912gdwhhv8idi3njifd3xnz0q38i0h3"; + authors = [ + "Amanieu d'Antras " + ]; + dependencies = [ + { + name = "scopeguard"; + packageId = "scopeguard"; + usesDefaultFeatures = false; + } + ]; + features = { + }; + }; + "log" = rec { + crateName = "log"; + version = "0.4.14"; + edition = "2015"; + sha256 = "04175hv0v62shd82qydq58a48k3bjijmk54v38zgqlbxqkkbpfai"; + authors = [ + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + ]; + 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" ]; + }; + resolvedDefaultFeatures = [ "std" ]; + }; + "loom" = rec { + crateName = "loom"; + version = "0.5.1"; + edition = "2018"; + sha256 = "1i4gmwz53nhkdc9xxy247r6q8jxzl3kmr799v3h5fy1xf9y60491"; + authors = [ + "Carl Lerche " + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + { + name = "generator"; + packageId = "generator"; + } + { + name = "scoped-tls"; + packageId = "scoped-tls"; + } + { + name = "serde"; + packageId = "serde"; + optional = true; + features = [ "derive" ]; + } + { + name = "serde_json"; + packageId = "serde_json"; + optional = true; + } + ]; + features = { + "checkpoint" = [ "serde" "serde_json" ]; + "futures" = [ "pin-utils" ]; + }; + resolvedDefaultFeatures = [ "checkpoint" "default" "serde" "serde_json" ]; + }; + "matches" = rec { + crateName = "matches"; + version = "0.1.8"; + edition = "2015"; + sha256 = "020axl4q7rk9vz90phs7f8jas4imxal9y9kxl4z4v7a6719mrz3z"; + libPath = "lib.rs"; + authors = [ + "Simon Sapin " + ]; + + }; + "memchr" = rec { + crateName = "memchr"; + version = "2.4.0"; + edition = "2018"; + sha256 = "1p478fqf4nia2ma0kv4npb8x1hli0zz6k16517ikb51jkryx8sxi"; + authors = [ + "Andrew Gallant " + "bluss" + ]; + features = { + "default" = [ "std" ]; + "use_std" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" "use_std" ]; + }; + "mime" = rec { + crateName = "mime"; + version = "0.3.16"; + edition = "2015"; + sha256 = "13dcm9lh01hdwfjcg74ppljyjfj1c6w3a3cwkhxf0w8wa37cfq1a"; + authors = [ + "Sean McArthur " + ]; + + }; + "miniz_oxide" = rec { + crateName = "miniz_oxide"; + version = "0.4.4"; + edition = "2018"; + sha256 = "0jsfv00hl5rmx1nijn59sr9jmjd4rjnjhh4kdjy8d187iklih9d9"; + authors = [ + "Frommi " + "oyvindln " + ]; + dependencies = [ + { + name = "adler"; + packageId = "adler"; + usesDefaultFeatures = false; + } + ]; + buildDependencies = [ + { + name = "autocfg"; + packageId = "autocfg 1.0.1"; + } + ]; + features = { + "rustc-dep-of-std" = [ "core" "alloc" "compiler_builtins" "adler/rustc-dep-of-std" ]; + }; + }; + "mio" = rec { + crateName = "mio"; + version = "0.7.13"; + edition = "2018"; + sha256 = "05mvlrn3r2vqps4fflmknw15r0rs8xld4g99sdf8647c2iixnawc"; + authors = [ + "Carl Lerche " + "Thomas de Zeeuw " + "Tokio Contributors " + ]; + dependencies = [ + { + name = "libc"; + packageId = "libc"; + target = { target, features }: (target."unix" or false); + } + { + name = "log"; + packageId = "log"; + } + { + name = "miow"; + packageId = "miow"; + target = { target, features }: (target."windows" or false); + } + { + name = "ntapi"; + packageId = "ntapi"; + target = { target, features }: (target."windows" or false); + } + { + name = "winapi"; + packageId = "winapi"; + target = { target, features }: (target."windows" or false); + features = [ "winsock2" "mswsock" "mstcpip" ]; + } + ]; + features = { + "os-ext" = [ "os-poll" ]; + "os-util" = [ "os-ext" ]; + "pipe" = [ "os-ext" ]; + "tcp" = [ "net" ]; + "udp" = [ "net" ]; + "uds" = [ "net" ]; + }; + resolvedDefaultFeatures = [ "default" "net" "os-ext" "os-poll" "os-util" "tcp" "udp" "uds" ]; + }; + "miow" = rec { + crateName = "miow"; + version = "0.3.7"; + edition = "2018"; + sha256 = "08afp2xfpxmdw003111lxz6g9jgbj4zi2fpldvv7da6d4nqcbwdr"; + authors = [ + "Alex Crichton " + ]; + dependencies = [ + { + name = "winapi"; + packageId = "winapi"; + features = [ "std" "fileapi" "handleapi" "ioapiset" "minwindef" "namedpipeapi" "ntdef" "synchapi" "winerror" "winsock2" "ws2def" "ws2ipdef" ]; + } + ]; + + }; + "multer" = rec { + crateName = "multer"; + version = "2.0.1"; + edition = "2018"; + sha256 = "104n2z2ysvrz4119axk12c5c39hr40dw0gq0mz8rr0wvk7i2g0s0"; + authors = [ + "Rousan Ali " + ]; + dependencies = [ + { + name = "bytes"; + packageId = "bytes"; + } + { + name = "encoding_rs"; + packageId = "encoding_rs"; + } + { + name = "futures-util"; + packageId = "futures-util"; + usesDefaultFeatures = false; + } + { + name = "http"; + packageId = "http"; + } + { + name = "httparse"; + packageId = "httparse"; + } + { + name = "log"; + packageId = "log"; + } + { + name = "mime"; + packageId = "mime"; + } + { + name = "spin"; + packageId = "spin 0.9.2"; + usesDefaultFeatures = false; + features = [ "spin_mutex" ]; + } + { + name = "tokio"; + packageId = "tokio"; + optional = true; + } + { + name = "tokio-util"; + packageId = "tokio-util"; + optional = true; + features = [ "io" ]; + } + { + name = "twoway"; + packageId = "twoway"; + } + ]; + buildDependencies = [ + { + name = "version_check"; + packageId = "version_check"; + } + ]; + devDependencies = [ + { + name = "tokio"; + packageId = "tokio"; + features = [ "full" ]; + } + ]; + features = { + "all" = [ "json" ]; + "json" = [ "serde" "serde_json" ]; + "tokio-io" = [ "tokio" "tokio-util" ]; + }; + resolvedDefaultFeatures = [ "default" "tokio" "tokio-io" "tokio-util" ]; + }; + "new_debug_unreachable" = rec { + crateName = "new_debug_unreachable"; + version = "1.0.4"; + edition = "2018"; + sha256 = "0m1bg3wz3nvxdryg78x4i8hh9fys4wp2bi0zg821dhvf44v4g8p4"; + libName = "debug_unreachable"; + authors = [ + "Matt Brubeck " + "Jonathan Reem " + ]; + + }; + "ntapi" = rec { + crateName = "ntapi"; + version = "0.3.6"; + edition = "2018"; + sha256 = "0i5daj9sr8wyi5jkpwpybln2jqpn59z0mqfc0dpdidipwh1bjsrz"; + authors = [ + "MSxDOS " + ]; + dependencies = [ + { + name = "winapi"; + packageId = "winapi"; + features = [ "cfg" "evntrace" "in6addr" "inaddr" "minwinbase" "ntsecapi" "windef" "winioctl" ]; + } + ]; + features = { + "default" = [ "user" ]; + "impl-default" = [ "winapi/impl-default" ]; + }; + resolvedDefaultFeatures = [ "default" "user" ]; + }; + "num-integer" = rec { + crateName = "num-integer"; + version = "0.1.44"; + edition = "2015"; + sha256 = "1nq152y3304as1iai95hqz8prqnc94lks1s7q05sfjdmcf56kk6j"; + authors = [ + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "num-traits"; + packageId = "num-traits"; + usesDefaultFeatures = false; + } + ]; + buildDependencies = [ + { + name = "autocfg"; + packageId = "autocfg 1.0.1"; + } + ]; + features = { + "default" = [ "std" ]; + "i128" = [ "num-traits/i128" ]; + "std" = [ "num-traits/std" ]; + }; + }; + "num-traits" = rec { + crateName = "num-traits"; + version = "0.2.14"; + edition = "2015"; + sha256 = "144j176s2p76azy2ngk2vkdzgwdc0bc8c93jhki8c9fsbknb2r4s"; + authors = [ + "The Rust Project Developers" + ]; + buildDependencies = [ + { + name = "autocfg"; + packageId = "autocfg 1.0.1"; + } + ]; + features = { + "default" = [ "std" ]; + }; + }; + "num_cpus" = rec { + crateName = "num_cpus"; + version = "1.13.0"; + edition = "2015"; + sha256 = "1cv6yxhz2zbnwn8pn1yn8grg7zsnd523947fby41a737aqvryj85"; + authors = [ + "Sean McArthur " + ]; + dependencies = [ + { + name = "hermit-abi"; + packageId = "hermit-abi"; + target = { target, features }: (((target."arch" == "x86_64") || (target."arch" == "aarch64")) && (target."os" == "hermit")); + } + { + name = "libc"; + packageId = "libc"; + } + ]; + + }; + "once_cell" = rec { + crateName = "once_cell"; + version = "1.8.0"; + edition = "2018"; + sha256 = "0mkbbxg6416z11r2yzsq91cqrkj9w1iyx5hakq15h5sbnriwnbv9"; + authors = [ + "Aleksey Kladov " + ]; + features = { + "alloc" = [ "race" ]; + "default" = [ "std" ]; + "std" = [ "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "race" "std" ]; + }; + "opaque-debug" = rec { + crateName = "opaque-debug"; + version = "0.2.3"; + edition = "2015"; + sha256 = "172j6bs8ndclqxa2m64qc0y1772rr73g4l9fg2svscgicnbfff98"; + authors = [ + "RustCrypto Developers" + ]; + + }; + "ordermap" = rec { + crateName = "ordermap"; + version = "0.3.5"; + edition = "2015"; + sha256 = "0qr0a50l0qakbjcck93qdayd0xl8gzpp42x0n7b75cs4ybsx6vm8"; + authors = [ + "bluss" + ]; + features = { + "serde-1" = [ "serde" ]; + }; + }; + "os_str_bytes" = rec { + crateName = "os_str_bytes"; + version = "2.4.0"; + edition = "2018"; + sha256 = "11agh8n3x2l4sr3sxvx6byc1j3ryb1g6flb1ywn0qhq7xv1y3cmg"; + authors = [ + "dylni" + ]; + features = { + }; + resolvedDefaultFeatures = [ "raw" ]; + }; + "parking_lot" = rec { + crateName = "parking_lot"; + version = "0.11.1"; + edition = "2018"; + sha256 = "1sqmgaia8zfd5fbnqw2w13ijh7crk3lf9vw4cb52vwlx0an48xvd"; + authors = [ + "Amanieu d'Antras " + ]; + dependencies = [ + { + name = "instant"; + packageId = "instant"; + } + { + name = "lock_api"; + packageId = "lock_api"; + } + { + name = "parking_lot_core"; + packageId = "parking_lot_core"; + } + ]; + features = { + "deadlock_detection" = [ "parking_lot_core/deadlock_detection" ]; + "nightly" = [ "parking_lot_core/nightly" "lock_api/nightly" ]; + "owning_ref" = [ "lock_api/owning_ref" ]; + "serde" = [ "lock_api/serde" ]; + "stdweb" = [ "instant/stdweb" ]; + "wasm-bindgen" = [ "instant/wasm-bindgen" ]; + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "parking_lot_core" = rec { + crateName = "parking_lot_core"; + version = "0.8.3"; + edition = "2018"; + sha256 = "065hkylji0g0fkh1vqp7kzs74vclhsxcczwhwqzpcig770lphyps"; + authors = [ + "Amanieu d'Antras " + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + { + name = "instant"; + packageId = "instant"; + } + { + name = "libc"; + packageId = "libc"; + target = { target, features }: (target."unix" or false); + } + { + name = "redox_syscall"; + packageId = "redox_syscall 0.2.9"; + target = { target, features }: (target."os" == "redox"); + } + { + name = "smallvec"; + packageId = "smallvec"; + } + { + name = "winapi"; + packageId = "winapi"; + target = { target, features }: (target."windows" or false); + features = [ "winnt" "ntstatus" "minwindef" "winerror" "winbase" "errhandlingapi" "handleapi" ]; + } + ]; + features = { + "deadlock_detection" = [ "petgraph" "thread-id" "backtrace" ]; + }; + }; + "pear" = rec { + crateName = "pear"; + version = "0.2.3"; + edition = "2018"; + sha256 = "00l7llav8cidhclx0m2gxm267pfa90c7r2x7xbinij74qm0l5r0m"; + authors = [ + "Sergio Benitez " + ]; + dependencies = [ + { + name = "inlinable_string"; + packageId = "inlinable_string"; + } + { + name = "pear_codegen"; + packageId = "pear_codegen"; + } + { + name = "yansi"; + packageId = "yansi"; + optional = true; + } + ]; + features = { + "color" = [ "yansi" ]; + "default" = [ "color" ]; + }; + resolvedDefaultFeatures = [ "color" "default" "yansi" ]; + }; + "pear_codegen" = rec { + crateName = "pear_codegen"; + version = "0.2.3"; + edition = "2018"; + sha256 = "1l4209fi1n0wj110l12l4xpy32d1xffm61nm82vyq0r37ijcm9c2"; + procMacro = true; + authors = [ + "Sergio Benitez " + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "proc-macro2-diagnostics"; + packageId = "proc-macro2-diagnostics"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn"; + features = [ "full" "extra-traits" "visit-mut" ]; + } + ]; + + }; + "percent-encoding" = rec { + crateName = "percent-encoding"; + version = "2.1.0"; + edition = "2015"; + sha256 = "0bp3zrsk3kr47fbpipyczidbbx4g54lzxdm77ni1i3qws10mdzfl"; + libPath = "lib.rs"; + authors = [ + "The rust-url developers" + ]; + + }; + "petgraph" = rec { + crateName = "petgraph"; + version = "0.4.13"; + edition = "2015"; + sha256 = "0kyfmca854s54jk26g2x1kjb04c3k7cjilaxyr0if8lhxv8mjdlw"; + authors = [ + "bluss" + "mitchmindtree" + ]; + dependencies = [ + { + name = "fixedbitset"; + packageId = "fixedbitset"; + } + { + name = "ordermap"; + packageId = "ordermap"; + optional = true; + } + ]; + features = { + "all" = [ "unstable" "quickcheck" "stable_graph" "graphmap" ]; + "default" = [ "graphmap" "stable_graph" ]; + "graphmap" = [ "ordermap" ]; + "serde-1" = [ "serde" "serde_derive" ]; + "unstable" = [ "generate" ]; + }; + resolvedDefaultFeatures = [ "default" "graphmap" "ordermap" "stable_graph" ]; + }; + "phf_generator" = rec { + crateName = "phf_generator"; + version = "0.7.24"; + edition = "2015"; + sha256 = "0qi62gxk3x3whrmw5c4i71406icqk11qmpgln438p6qm7k4lqdh9"; + authors = [ + "Steven Fackler " + ]; + dependencies = [ + { + name = "phf_shared"; + packageId = "phf_shared"; + } + { + name = "rand"; + packageId = "rand 0.6.5"; + } + ]; + + }; + "phf_shared" = rec { + crateName = "phf_shared"; + version = "0.7.24"; + edition = "2015"; + sha256 = "18371fla0vsj7d6d5rlfb747xbr2in11ar9vgv5qna72bnhp2kr3"; + authors = [ + "Steven Fackler " + ]; + dependencies = [ + { + name = "siphasher"; + packageId = "siphasher"; + } + ]; + features = { + }; + }; + "pin-project-lite" = rec { + crateName = "pin-project-lite"; + version = "0.2.7"; + edition = "2018"; + sha256 = "0hwl8iyx3h9i3i3jr2vqj07nf4ay1v1w1ga29cbjmdd6d4fd2ccd"; + authors = [ + "Taiki Endo " + ]; + + }; + "pin-utils" = rec { + crateName = "pin-utils"; + version = "0.1.0"; + edition = "2018"; + sha256 = "117ir7vslsl2z1a7qzhws4pd01cg2d3338c47swjyvqv2n60v1wb"; + authors = [ + "Josef Brandl " + ]; + + }; + "ppv-lite86" = rec { + crateName = "ppv-lite86"; + version = "0.2.10"; + edition = "2018"; + sha256 = "0ms8198kclg4h96ggbziixxmsdl847s648kmbx11zlmjsqjccx5c"; + authors = [ + "The CryptoCorrosion Contributors" + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "simd" "std" ]; + }; + "precomputed-hash" = rec { + crateName = "precomputed-hash"; + version = "0.1.1"; + edition = "2015"; + sha256 = "075k9bfy39jhs53cb2fpb9klfakx2glxnf28zdw08ws6lgpq6lwj"; + authors = [ + "Emilio Cobos Álvarez " + ]; + + }; + "proc-macro-error" = rec { + crateName = "proc-macro-error"; + version = "1.0.4"; + edition = "2018"; + sha256 = "1373bhxaf0pagd8zkyd03kkx6bchzf6g0dkwrwzsnal9z47lj9fs"; + authors = [ + "CreepySkeleton " + ]; + dependencies = [ + { + name = "proc-macro-error-attr"; + packageId = "proc-macro-error-attr"; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn"; + optional = true; + usesDefaultFeatures = false; + } + ]; + buildDependencies = [ + { + name = "version_check"; + packageId = "version_check"; + } + ]; + features = { + "default" = [ "syn-error" ]; + "syn-error" = [ "syn" ]; + }; + resolvedDefaultFeatures = [ "default" "syn" "syn-error" ]; + }; + "proc-macro-error-attr" = rec { + crateName = "proc-macro-error-attr"; + version = "1.0.4"; + edition = "2018"; + sha256 = "0sgq6m5jfmasmwwy8x4mjygx5l7kp8s4j60bv25ckv2j1qc41gm1"; + procMacro = true; + authors = [ + "CreepySkeleton " + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + ]; + buildDependencies = [ + { + name = "version_check"; + packageId = "version_check"; + } + ]; + + }; + "proc-macro-hack" = rec { + crateName = "proc-macro-hack"; + version = "0.5.19"; + edition = "2018"; + sha256 = "1rg0kzsj7lj00qj602d3h77spwfz48vixn1wbjp7a4yrq65w9w6v"; + procMacro = true; + authors = [ + "David Tolnay " + ]; + + }; + "proc-macro-nested" = rec { + crateName = "proc-macro-nested"; + version = "0.1.7"; + edition = "2015"; + sha256 = "11hh1jynh62f3m1ii0f9gf1l3y0fhkwpmr40lz3704v848n1p25w"; + authors = [ + "David Tolnay " + ]; + + }; + "proc-macro2" = rec { + crateName = "proc-macro2"; + version = "1.0.28"; + edition = "2018"; + sha256 = "04k6kwfsl56xqv46f9k88jmj7x4544hhbr6xswzfm1mqqywdhzjw"; + authors = [ + "Alex Crichton " + "David Tolnay " + ]; + dependencies = [ + { + name = "unicode-xid"; + packageId = "unicode-xid 0.2.2"; + } + ]; + features = { + "default" = [ "proc-macro" ]; + }; + resolvedDefaultFeatures = [ "default" "nightly" "proc-macro" ]; + }; + "proc-macro2-diagnostics" = rec { + crateName = "proc-macro2-diagnostics"; + version = "0.9.1"; + edition = "2018"; + sha256 = "1nmazlb1dkznjds7qwms7yxhi33ajc3isji2lsgx8r3lsqk9gwjb"; + authors = [ + "Sergio Benitez " + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn"; + } + { + name = "yansi"; + packageId = "yansi"; + optional = true; + } + ]; + buildDependencies = [ + { + name = "version_check"; + packageId = "version_check"; + } + ]; + features = { + "colors" = [ "yansi" ]; + "default" = [ "colors" ]; + }; + resolvedDefaultFeatures = [ "colors" "default" "yansi" ]; + }; + "quote" = rec { + crateName = "quote"; + version = "1.0.9"; + edition = "2018"; + sha256 = "19rjmfqzk26rxbgxy5j2ckqc2v12sw2xw8l4gi8bzpn2bmsbkl63"; + authors = [ + "David Tolnay " + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "proc-macro" ]; + "proc-macro" = [ "proc-macro2/proc-macro" ]; + }; + resolvedDefaultFeatures = [ "default" "proc-macro" ]; + }; + "rand 0.6.5" = rec { + crateName = "rand"; + version = "0.6.5"; + edition = "2015"; + sha256 = "1jl4449jcl4wgmzld6ffwqj5gwxrp8zvx8w573g1z368qg6xlwbd"; + authors = [ + "The Rand Project Developers" + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "libc"; + packageId = "libc"; + usesDefaultFeatures = false; + target = { target, features }: (target."unix" or false); + } + { + name = "rand_chacha"; + packageId = "rand_chacha 0.1.1"; + } + { + name = "rand_core"; + packageId = "rand_core 0.4.2"; + } + { + name = "rand_hc"; + packageId = "rand_hc 0.1.0"; + } + { + name = "rand_isaac"; + packageId = "rand_isaac"; + } + { + name = "rand_jitter"; + packageId = "rand_jitter"; + } + { + name = "rand_os"; + packageId = "rand_os"; + optional = true; + } + { + name = "rand_pcg"; + packageId = "rand_pcg"; + } + { + name = "rand_xorshift"; + packageId = "rand_xorshift"; + } + { + name = "winapi"; + packageId = "winapi"; + target = { target, features }: (target."windows" or false); + features = [ "minwindef" "ntsecapi" "profileapi" "winnt" ]; + } + ]; + buildDependencies = [ + { + name = "autocfg"; + packageId = "autocfg 0.1.7"; + } + ]; + features = { + "alloc" = [ "rand_core/alloc" ]; + "default" = [ "std" ]; + "nightly" = [ "simd_support" ]; + "serde1" = [ "rand_core/serde1" "rand_isaac/serde1" "rand_xorshift/serde1" ]; + "simd_support" = [ "packed_simd" ]; + "std" = [ "rand_core/std" "alloc" "rand_os" "rand_jitter/std" ]; + "stdweb" = [ "rand_os/stdweb" ]; + "wasm-bindgen" = [ "rand_os/wasm-bindgen" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "rand_os" "std" ]; + }; + "rand 0.8.4" = rec { + crateName = "rand"; + version = "0.8.4"; + edition = "2018"; + sha256 = "1n5wska2fbfj4dsfz8mc0pd0dgjlrb6c9anpk5mwym345rip6x9f"; + authors = [ + "The Rand Project Developers" + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "libc"; + packageId = "libc"; + optional = true; + usesDefaultFeatures = false; + target = { target, features }: (target."unix" or false); + } + { + name = "rand_chacha"; + packageId = "rand_chacha 0.3.1"; + optional = true; + usesDefaultFeatures = false; + target = { target, features }: (!(target."os" == "emscripten")); + } + { + name = "rand_core"; + packageId = "rand_core 0.6.3"; + } + { + name = "rand_hc"; + packageId = "rand_hc 0.3.1"; + optional = true; + target = { target, features }: (target."os" == "emscripten"); + } + ]; + devDependencies = [ + { + name = "rand_hc"; + packageId = "rand_hc 0.3.1"; + } + ]; + features = { + "alloc" = [ "rand_core/alloc" ]; + "default" = [ "std" "std_rng" ]; + "getrandom" = [ "rand_core/getrandom" ]; + "serde1" = [ "serde" "rand_core/serde1" ]; + "simd_support" = [ "packed_simd" ]; + "std" = [ "rand_core/std" "rand_chacha/std" "alloc" "getrandom" "libc" ]; + "std_rng" = [ "rand_chacha" "rand_hc" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "getrandom" "libc" "rand_chacha" "rand_hc" "std" "std_rng" ]; + }; + "rand_chacha 0.1.1" = rec { + crateName = "rand_chacha"; + version = "0.1.1"; + edition = "2015"; + sha256 = "1vxwyzs4fy1ffjc8l00fsyygpiss135irjf7nyxgq2v0lqf3lvam"; + authors = [ + "The Rand Project Developers" + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.3.1"; + usesDefaultFeatures = false; + } + ]; + buildDependencies = [ + { + name = "autocfg"; + packageId = "autocfg 0.1.7"; + } + ]; + + }; + "rand_chacha 0.3.1" = rec { + crateName = "rand_chacha"; + version = "0.3.1"; + edition = "2018"; + sha256 = "123x2adin558xbhvqb8w4f6syjsdkmqff8cxwhmjacpsl1ihmhg6"; + 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 0.6.3"; + } + ]; + features = { + "default" = [ "std" ]; + "serde1" = [ "serde" ]; + "std" = [ "ppv-lite86/std" ]; + }; + resolvedDefaultFeatures = [ "std" ]; + }; + "rand_core 0.3.1" = rec { + crateName = "rand_core"; + version = "0.3.1"; + edition = "2015"; + sha256 = "0jzdgszfa4bliigiy4hi66k7fs3gfwi2qxn8vik84ph77fwdwvvs"; + authors = [ + "The Rand Project Developers" + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.4.2"; + } + ]; + features = { + "alloc" = [ "rand_core/alloc" ]; + "default" = [ "std" ]; + "serde1" = [ "rand_core/serde1" ]; + "std" = [ "rand_core/std" ]; + }; + }; + "rand_core 0.4.2" = rec { + crateName = "rand_core"; + version = "0.4.2"; + edition = "2015"; + sha256 = "1p09ynysrq1vcdlmcqnapq4qakl2yd1ng3kxh3qscpx09k2a6cww"; + authors = [ + "The Rand Project Developers" + "The Rust Project Developers" + ]; + features = { + "serde1" = [ "serde" "serde_derive" ]; + "std" = [ "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" "std" ]; + }; + "rand_core 0.6.3" = rec { + crateName = "rand_core"; + version = "0.6.3"; + edition = "2018"; + sha256 = "1rxlxc3bpzgwphcg9c9yasvv9idipcg2z2y4j0vlb52jyl418kyk"; + authors = [ + "The Rand Project Developers" + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "getrandom"; + packageId = "getrandom 0.2.3"; + optional = true; + } + ]; + features = { + "serde1" = [ "serde" ]; + "std" = [ "alloc" "getrandom" "getrandom/std" ]; + }; + resolvedDefaultFeatures = [ "alloc" "getrandom" "std" ]; + }; + "rand_hc 0.1.0" = rec { + crateName = "rand_hc"; + version = "0.1.0"; + edition = "2015"; + sha256 = "1i0vl8q5ddvvy0x8hf1zxny393miyzxkwqnw31ifg6p0gdy6fh3v"; + authors = [ + "The Rand Project Developers" + ]; + dependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.3.1"; + usesDefaultFeatures = false; + } + ]; + + }; + "rand_hc 0.3.1" = rec { + crateName = "rand_hc"; + version = "0.3.1"; + edition = "2018"; + sha256 = "1rwpykyvhkxs4jvqdja3mzp9dqaqamzn113cxaigs9z2dmcry7nm"; + authors = [ + "The Rand Project Developers" + ]; + dependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.6.3"; + } + ]; + + }; + "rand_isaac" = rec { + crateName = "rand_isaac"; + version = "0.1.1"; + edition = "2015"; + sha256 = "027flpjr4znx2csxk7gxb7vrf9c7y5mydmvg5az2afgisp4rgnfy"; + authors = [ + "The Rand Project Developers" + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.3.1"; + usesDefaultFeatures = false; + } + ]; + features = { + "serde1" = [ "serde" "serde_derive" "rand_core/serde1" ]; + }; + }; + "rand_jitter" = rec { + crateName = "rand_jitter"; + version = "0.1.4"; + edition = "2015"; + sha256 = "16z387y46bfz3csc42zxbjq89vcr1axqacncvv8qhyy93p4xarhi"; + authors = [ + "The Rand Project Developers" + ]; + dependencies = [ + { + name = "libc"; + packageId = "libc"; + usesDefaultFeatures = false; + target = { target, features }: ((target."os" == "macos") || (target."os" == "ios")); + } + { + name = "rand_core"; + packageId = "rand_core 0.4.2"; + } + { + name = "winapi"; + packageId = "winapi"; + target = { target, features }: (target."os" == "windows"); + features = [ "profileapi" ]; + } + ]; + features = { + "std" = [ "rand_core/std" ]; + }; + resolvedDefaultFeatures = [ "std" ]; + }; + "rand_os" = rec { + crateName = "rand_os"; + version = "0.1.3"; + edition = "2015"; + sha256 = "0wahppm0s64gkr2vmhcgwc0lij37in1lgfxg5rbgqlz0l5vgcxbv"; + authors = [ + "The Rand Project Developers" + ]; + dependencies = [ + { + name = "cloudabi"; + packageId = "cloudabi"; + target = { target, features }: (target."os" == "cloudabi"); + } + { + name = "fuchsia-cprng"; + packageId = "fuchsia-cprng"; + target = { target, features }: (target."os" == "fuchsia"); + } + { + name = "libc"; + packageId = "libc"; + target = { target, features }: (target."unix" or false); + } + { + name = "rand_core"; + packageId = "rand_core 0.4.2"; + features = [ "std" ]; + } + { + name = "rdrand"; + packageId = "rdrand"; + target = { target, features }: (target."env" == "sgx"); + } + { + name = "winapi"; + packageId = "winapi"; + target = { target, features }: (target."windows" or false); + features = [ "minwindef" "ntsecapi" "winnt" ]; + } + ]; + + }; + "rand_pcg" = rec { + crateName = "rand_pcg"; + version = "0.1.2"; + edition = "2015"; + sha256 = "0i0bdla18a8x4jn1w0fxsbs3jg7ajllz6azmch1zw33r06dv1ydb"; + authors = [ + "The Rand Project Developers" + ]; + dependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.4.2"; + } + ]; + buildDependencies = [ + { + name = "autocfg"; + packageId = "autocfg 0.1.7"; + } + ]; + features = { + "serde1" = [ "serde" "serde_derive" ]; + }; + }; + "rand_xorshift" = rec { + crateName = "rand_xorshift"; + version = "0.1.1"; + edition = "2015"; + sha256 = "0p2x8nr00hricpi2m6ca5vysiha7ybnghz79yqhhx6sl4gkfkxyb"; + authors = [ + "The Rand Project Developers" + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.3.1"; + usesDefaultFeatures = false; + } + ]; + features = { + "serde1" = [ "serde" "serde_derive" ]; + }; + }; + "rdrand" = rec { + crateName = "rdrand"; + version = "0.4.0"; + edition = "2015"; + sha256 = "1cjq0kwx1bk7jx3kzyciiish5gqsj7620dm43dc52sr8fzmm9037"; + authors = [ + "Simonas Kazlauskas " + ]; + dependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.3.1"; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "redox_syscall 0.1.57" = rec { + crateName = "redox_syscall"; + version = "0.1.57"; + edition = "2015"; + sha256 = "1kh59fpwy33w9nwd5iyc283yglq8pf2s41hnhvl48iax9mz0zk21"; + libName = "syscall"; + authors = [ + "Jeremy Soller " + ]; + + }; + "redox_syscall 0.2.9" = rec { + crateName = "redox_syscall"; + version = "0.2.9"; + edition = "2018"; + sha256 = "1vpyfnfrw5ki262720yks8m7vn1a2mg89s4rqi5ir7izvyx9md2s"; + libName = "syscall"; + authors = [ + "Jeremy Soller " + ]; + dependencies = [ + { + name = "bitflags"; + packageId = "bitflags"; + } + ]; + + }; + "redox_users" = rec { + crateName = "redox_users"; + version = "0.3.5"; + edition = "2015"; + sha256 = "179fxmyqaqzibp533ajgbn4ljah9lrzpqvd3i73h55bs7qrkf1yy"; + authors = [ + "Jose Narvaez " + "Wesley Hershberger " + ]; + dependencies = [ + { + name = "getrandom"; + packageId = "getrandom 0.1.16"; + } + { + name = "redox_syscall"; + packageId = "redox_syscall 0.1.57"; + } + { + name = "rust-argon2"; + packageId = "rust-argon2"; + optional = true; + } + ]; + features = { + "auth" = [ "rust-argon2" ]; + "default" = [ "auth" ]; + }; + resolvedDefaultFeatures = [ "auth" "default" "rust-argon2" ]; + }; + "ref-cast" = rec { + crateName = "ref-cast"; + version = "1.0.6"; + edition = "2018"; + sha256 = "1nj1wp530yd1rx545qisvllvp7nbv9x00iax57p391w0bn1jl3rh"; + authors = [ + "David Tolnay " + ]; + dependencies = [ + { + name = "ref-cast-impl"; + packageId = "ref-cast-impl"; + } + ]; + + }; + "ref-cast-impl" = rec { + crateName = "ref-cast-impl"; + version = "1.0.6"; + edition = "2018"; + sha256 = "1lndalzfwhrpknibjs027zjcfjvincxqhyv3b4wwn89brnpf6f2c"; + procMacro = true; + authors = [ + "David Tolnay " + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn"; + } + ]; + + }; + "regex" = rec { + crateName = "regex"; + version = "1.5.4"; + edition = "2018"; + sha256 = "0qf479kjbmb582h4d1d6gfl75h0j8aq2nrdi5wg6zdcy6llqcynh"; + 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 = { + "default" = [ "std" "perf" "unicode" "regex-syntax/default" ]; + "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.25"; + edition = "2018"; + sha256 = "16y87hz1bxmmz6kk360cxwfm3jnbsxb3x4zw9x1gzz7khic2i5zl"; + 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 " + ]; + dependencies = [ + { + name = "winapi"; + packageId = "winapi"; + target = { target, features }: (target."windows" or false); + features = [ "std" "errhandlingapi" "winerror" "fileapi" "winbase" ]; + } + ]; + + }; + "reqwest" = rec { + crateName = "reqwest"; + version = "0.11.4"; + edition = "2018"; + sha256 = "08kdxaa7c5wzlr2f4qkqlczc86p30sz84xllk83dyxxvp5hryvi4"; + authors = [ + "Sean McArthur " + ]; + dependencies = [ + { + name = "async-compression"; + packageId = "async-compression"; + optional = true; + usesDefaultFeatures = false; + target = { target, features }: (!(target."arch" == "wasm32")); + features = [ "tokio" ]; + } + { + name = "base64"; + packageId = "base64"; + target = { target, features }: (!(target."arch" == "wasm32")); + } + { + name = "bytes"; + packageId = "bytes"; + } + { + name = "encoding_rs"; + packageId = "encoding_rs"; + target = { target, features }: (!(target."arch" == "wasm32")); + } + { + name = "futures-core"; + packageId = "futures-core"; + usesDefaultFeatures = false; + target = { target, features }: (!(target."arch" == "wasm32")); + } + { + name = "futures-util"; + packageId = "futures-util"; + usesDefaultFeatures = false; + target = { target, features }: (!(target."arch" == "wasm32")); + } + { + name = "http"; + packageId = "http"; + } + { + name = "http-body"; + packageId = "http-body"; + target = { target, features }: (!(target."arch" == "wasm32")); + } + { + name = "hyper"; + packageId = "hyper"; + usesDefaultFeatures = false; + target = { target, features }: (!(target."arch" == "wasm32")); + features = [ "tcp" "http1" "http2" "client" "runtime" ]; + } + { + name = "hyper-rustls"; + packageId = "hyper-rustls"; + optional = true; + usesDefaultFeatures = false; + target = { target, features }: (!(target."arch" == "wasm32")); + } + { + name = "ipnet"; + packageId = "ipnet"; + target = { target, features }: (!(target."arch" == "wasm32")); + } + { + name = "js-sys"; + packageId = "js-sys"; + target = { target, features }: (target."arch" == "wasm32"); + } + { + name = "lazy_static"; + packageId = "lazy_static"; + target = { target, features }: (!(target."arch" == "wasm32")); + } + { + name = "log"; + packageId = "log"; + target = { target, features }: (!(target."arch" == "wasm32")); + } + { + name = "mime"; + packageId = "mime"; + target = { target, features }: (!(target."arch" == "wasm32")); + } + { + name = "percent-encoding"; + packageId = "percent-encoding"; + target = { target, features }: (!(target."arch" == "wasm32")); + } + { + name = "pin-project-lite"; + packageId = "pin-project-lite"; + target = { target, features }: (!(target."arch" == "wasm32")); + } + { + name = "rustls"; + packageId = "rustls"; + optional = true; + target = { target, features }: (!(target."arch" == "wasm32")); + features = [ "dangerous_configuration" ]; + } + { + name = "serde"; + packageId = "serde"; + } + { + name = "serde_json"; + packageId = "serde_json"; + optional = true; + } + { + name = "serde_urlencoded"; + packageId = "serde_urlencoded"; + } + { + name = "tokio"; + packageId = "tokio"; + usesDefaultFeatures = false; + target = { target, features }: (!(target."arch" == "wasm32")); + features = [ "net" "time" ]; + } + { + name = "tokio-rustls"; + packageId = "tokio-rustls"; + optional = true; + target = { target, features }: (!(target."arch" == "wasm32")); + } + { + name = "tokio-util"; + packageId = "tokio-util"; + optional = true; + usesDefaultFeatures = false; + target = { target, features }: (!(target."arch" == "wasm32")); + features = [ "codec" "io" ]; + } + { + name = "url"; + packageId = "url"; + } + { + name = "wasm-bindgen"; + packageId = "wasm-bindgen"; + target = { target, features }: (target."arch" == "wasm32"); + features = [ "serde-serialize" ]; + } + { + name = "wasm-bindgen-futures"; + packageId = "wasm-bindgen-futures"; + target = { target, features }: (target."arch" == "wasm32"); + } + { + name = "web-sys"; + packageId = "web-sys"; + target = { target, features }: (target."arch" == "wasm32"); + features = [ "Headers" "Request" "RequestInit" "RequestMode" "Response" "Window" "FormData" "Blob" "BlobPropertyBag" "ServiceWorkerGlobalScope" "RequestCredentials" ]; + } + { + name = "webpki-roots"; + packageId = "webpki-roots"; + optional = true; + target = { target, features }: (!(target."arch" == "wasm32")); + } + { + name = "winreg"; + packageId = "winreg"; + target = { target, features }: (target."windows" or false); + } + ]; + devDependencies = [ + { + name = "hyper"; + packageId = "hyper"; + usesDefaultFeatures = false; + target = {target, features}: (!(target."arch" == "wasm32")); + features = [ "tcp" "stream" "http1" "http2" "client" "server" "runtime" ]; + } + { + name = "serde"; + packageId = "serde"; + target = {target, features}: (!(target."arch" == "wasm32")); + features = [ "derive" ]; + } + { + name = "tokio"; + packageId = "tokio"; + usesDefaultFeatures = false; + target = {target, features}: (!(target."arch" == "wasm32")); + features = [ "macros" "rt-multi-thread" ]; + } + ]; + features = { + "__rustls" = [ "hyper-rustls" "tokio-rustls" "rustls" "__tls" ]; + "blocking" = [ "futures-util/io" "tokio/rt-multi-thread" "tokio/sync" ]; + "brotli" = [ "async-compression" "async-compression/brotli" "tokio-util" ]; + "cookies" = [ "cookie_crate" "cookie_store" "time" ]; + "default" = [ "default-tls" ]; + "default-tls" = [ "hyper-tls" "native-tls-crate" "__tls" "tokio-native-tls" ]; + "deflate" = [ "async-compression" "async-compression/zlib" "tokio-util" ]; + "gzip" = [ "async-compression" "async-compression/gzip" "tokio-util" ]; + "json" = [ "serde_json" ]; + "multipart" = [ "mime_guess" ]; + "native-tls" = [ "default-tls" ]; + "native-tls-alpn" = [ "native-tls" "native-tls-crate/alpn" ]; + "native-tls-vendored" = [ "native-tls" "native-tls-crate/vendored" ]; + "rustls-tls" = [ "rustls-tls-webpki-roots" ]; + "rustls-tls-manual-roots" = [ "__rustls" ]; + "rustls-tls-native-roots" = [ "rustls-native-certs" "__rustls" ]; + "rustls-tls-webpki-roots" = [ "webpki-roots" "__rustls" ]; + "socks" = [ "tokio-socks" ]; + "trust-dns" = [ "trust-dns-resolver" ]; + }; + resolvedDefaultFeatures = [ "__rustls" "__tls" "async-compression" "gzip" "hyper-rustls" "json" "rustls" "rustls-tls" "rustls-tls-webpki-roots" "serde_json" "tokio-rustls" "tokio-util" "webpki-roots" ]; + }; + "ring" = rec { + crateName = "ring"; + version = "0.16.20"; + edition = "2018"; + sha256 = "1z682xp7v38ayq9g9nkbhhfpj6ygralmlx7wdmsfv8rnw99cylrh"; + authors = [ + "Brian Smith " + ]; + dependencies = [ + { + name = "libc"; + packageId = "libc"; + usesDefaultFeatures = false; + target = { target, features }: ((target."os" == "android") || (target."os" == "linux")); + } + { + name = "once_cell"; + packageId = "once_cell"; + optional = true; + usesDefaultFeatures = false; + target = { target, features }: ((target."os" == "android") || (target."os" == "linux")); + features = [ "std" ]; + } + { + name = "once_cell"; + packageId = "once_cell"; + usesDefaultFeatures = false; + target = { target, features }: ((target."os" == "dragonfly") || (target."os" == "freebsd") || (target."os" == "illumos") || (target."os" == "netbsd") || (target."os" == "openbsd") || (target."os" == "solaris")); + features = [ "std" ]; + } + { + name = "spin"; + packageId = "spin 0.5.2"; + usesDefaultFeatures = false; + target = { target, features }: ((target."arch" == "x86") || (target."arch" == "x86_64") || (((target."arch" == "aarch64") || (target."arch" == "arm")) && ((target."os" == "android") || (target."os" == "fuchsia") || (target."os" == "linux")))); + } + { + name = "untrusted"; + packageId = "untrusted"; + } + { + name = "web-sys"; + packageId = "web-sys"; + usesDefaultFeatures = false; + target = { target, features }: ((target."arch" == "wasm32") && (target."vendor" == "unknown") && (target."os" == "unknown") && (target."env" == "")); + features = [ "Crypto" "Window" ]; + } + { + name = "winapi"; + packageId = "winapi"; + usesDefaultFeatures = false; + target = { target, features }: (target."os" == "windows"); + features = [ "ntsecapi" "wtypesbase" ]; + } + ]; + buildDependencies = [ + { + name = "cc"; + packageId = "cc"; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "libc"; + packageId = "libc"; + usesDefaultFeatures = false; + target = {target, features}: ((target."unix" or false) || (target."windows" or false)); + } + ]; + features = { + "default" = [ "alloc" "dev_urandom_fallback" ]; + "dev_urandom_fallback" = [ "once_cell" ]; + "std" = [ "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "dev_urandom_fallback" "once_cell" ]; + }; + "rocket" = rec { + crateName = "rocket"; + version = "0.5.0-rc.1"; + edition = "2018"; + sha256 = "1wni9nf9f0d7hvsalh9adybff4dd1npir0qn72zibsx08a6c2w8a"; + authors = [ + "Sergio Benitez " + ]; + dependencies = [ + { + name = "async-stream"; + packageId = "async-stream"; + } + { + name = "async-trait"; + packageId = "async-trait"; + } + { + name = "atomic"; + packageId = "atomic"; + } + { + name = "atty"; + packageId = "atty"; + } + { + name = "binascii"; + packageId = "binascii"; + } + { + name = "bytes"; + packageId = "bytes"; + } + { + name = "either"; + packageId = "either"; + } + { + name = "figment"; + packageId = "figment"; + features = [ "toml" "env" ]; + } + { + name = "futures"; + packageId = "futures"; + } + { + name = "indexmap"; + packageId = "indexmap"; + features = [ "serde-1" "std" ]; + } + { + name = "log"; + packageId = "log"; + features = [ "std" ]; + } + { + name = "memchr"; + packageId = "memchr"; + } + { + name = "multer"; + packageId = "multer"; + features = [ "tokio-io" ]; + } + { + name = "num_cpus"; + packageId = "num_cpus"; + } + { + name = "parking_lot"; + packageId = "parking_lot"; + } + { + name = "pin-project-lite"; + packageId = "pin-project-lite"; + } + { + name = "rand"; + packageId = "rand 0.8.4"; + } + { + name = "ref-cast"; + packageId = "ref-cast"; + } + { + name = "rocket_codegen"; + packageId = "rocket_codegen"; + } + { + name = "rocket_http"; + packageId = "rocket_http"; + features = [ "serde" ]; + } + { + name = "serde"; + packageId = "serde"; + features = [ "derive" ]; + } + { + name = "state"; + packageId = "state"; + } + { + name = "tempfile"; + packageId = "tempfile"; + } + { + name = "time"; + packageId = "time 0.2.27"; + } + { + name = "tokio"; + packageId = "tokio"; + features = [ "fs" "io-std" "io-util" "rt-multi-thread" "sync" "signal" "macros" ]; + } + { + name = "tokio-stream"; + packageId = "tokio-stream"; + features = [ "signal" "time" ]; + } + { + name = "tokio-util"; + packageId = "tokio-util"; + usesDefaultFeatures = false; + features = [ "io" ]; + } + { + name = "ubyte"; + packageId = "ubyte"; + features = [ "serde" ]; + } + { + name = "yansi"; + packageId = "yansi"; + } + ]; + buildDependencies = [ + { + name = "version_check"; + packageId = "version_check"; + } + { + name = "yansi"; + packageId = "yansi"; + } + ]; + features = { + "json" = [ "serde_json" "tokio/io-util" ]; + "msgpack" = [ "rmp-serde" "tokio/io-util" ]; + "secrets" = [ "rocket_http/private-cookies" ]; + "tls" = [ "rocket_http/tls" ]; + "uuid" = [ "uuid_" "rocket_http/uuid" ]; + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "rocket_codegen" = rec { + crateName = "rocket_codegen"; + version = "0.5.0-rc.1"; + edition = "2018"; + sha256 = "1fx8mr2ybxvsjnqnz9wzh1cvvfvlsz2if33im2xmifby5x3gmxb6"; + procMacro = true; + authors = [ + "Sergio Benitez " + ]; + dependencies = [ + { + name = "devise"; + packageId = "devise"; + } + { + name = "glob"; + packageId = "glob"; + } + { + name = "indexmap"; + packageId = "indexmap"; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "rocket_http"; + packageId = "rocket_http"; + } + { + name = "syn"; + packageId = "syn"; + features = [ "full" "visit" "visit-mut" "extra-traits" ]; + } + { + name = "unicode-xid"; + packageId = "unicode-xid 0.2.2"; + } + ]; + + }; + "rocket_http" = rec { + crateName = "rocket_http"; + version = "0.5.0-rc.1"; + edition = "2018"; + sha256 = "1gayw8bglx9kyph9xk76k55q8wvmwv6r1rgb2qisrz6j2bavgj13"; + authors = [ + "Sergio Benitez " + ]; + dependencies = [ + { + name = "cookie"; + packageId = "cookie"; + features = [ "percent-encode" ]; + } + { + name = "either"; + packageId = "either"; + } + { + name = "http"; + packageId = "http"; + } + { + name = "hyper"; + packageId = "hyper"; + usesDefaultFeatures = false; + features = [ "http1" "http2" "runtime" "server" "stream" ]; + } + { + name = "indexmap"; + packageId = "indexmap"; + features = [ "std" ]; + } + { + name = "log"; + packageId = "log"; + } + { + name = "memchr"; + packageId = "memchr"; + } + { + name = "mime"; + packageId = "mime"; + } + { + name = "parking_lot"; + packageId = "parking_lot"; + } + { + name = "pear"; + packageId = "pear"; + } + { + name = "percent-encoding"; + packageId = "percent-encoding"; + } + { + name = "pin-project-lite"; + packageId = "pin-project-lite"; + } + { + name = "ref-cast"; + packageId = "ref-cast"; + } + { + name = "serde"; + packageId = "serde"; + rename = "serde_"; + optional = true; + usesDefaultFeatures = false; + features = [ "std" ]; + } + { + name = "smallvec"; + packageId = "smallvec"; + } + { + name = "stable-pattern"; + packageId = "stable-pattern"; + } + { + name = "state"; + packageId = "state"; + } + { + name = "time"; + packageId = "time 0.2.27"; + } + { + name = "tokio"; + packageId = "tokio"; + features = [ "net" "sync" "time" ]; + } + { + name = "uncased"; + packageId = "uncased"; + } + ]; + features = { + "private-cookies" = [ "cookie/private" "cookie/key-expansion" ]; + "serde" = [ "uncased/with-serde-alloc" "serde_" ]; + "tls" = [ "tokio-rustls" ]; + "uuid" = [ "uuid_" ]; + }; + resolvedDefaultFeatures = [ "default" "serde" "serde_" ]; + }; + "rust-argon2" = rec { + crateName = "rust-argon2"; + version = "0.8.3"; + edition = "2018"; + sha256 = "1yvqkv04fqk3cbvyasibr4bqbxa6mij8jdvibakwlcsbjh6q462b"; + libName = "argon2"; + authors = [ + "Martijn Rijkeboer " + ]; + dependencies = [ + { + name = "base64"; + packageId = "base64"; + } + { + name = "blake2b_simd"; + packageId = "blake2b_simd"; + } + { + name = "constant_time_eq"; + packageId = "constant_time_eq"; + } + { + name = "crossbeam-utils"; + packageId = "crossbeam-utils"; + optional = true; + } + ]; + features = { + "default" = [ "crossbeam-utils" ]; + }; + resolvedDefaultFeatures = [ "crossbeam-utils" "default" ]; + }; + "rustc_version" = rec { + crateName = "rustc_version"; + version = "0.2.3"; + edition = "2015"; + sha256 = "02h3x57lcr8l2pm0a645s9whdh33pn5cnrwvn5cb57vcrc53x3hk"; + authors = [ + "Marvin Löbel " + ]; + dependencies = [ + { + name = "semver"; + packageId = "semver"; + } + ]; + + }; + "rustls" = rec { + crateName = "rustls"; + version = "0.19.1"; + edition = "2018"; + sha256 = "1mx6nzbplydy9khll4clsl35m6c1a2cgz9czr74swfgfzrsvdv9m"; + authors = [ + "Joseph Birr-Pixton " + ]; + dependencies = [ + { + name = "base64"; + packageId = "base64"; + } + { + name = "log"; + packageId = "log"; + optional = true; + } + { + name = "ring"; + packageId = "ring"; + } + { + name = "sct"; + packageId = "sct"; + } + { + name = "webpki"; + packageId = "webpki"; + } + ]; + devDependencies = [ + { + name = "log"; + packageId = "log"; + } + ]; + features = { + "default" = [ "logging" ]; + "logging" = [ "log" ]; + }; + resolvedDefaultFeatures = [ "dangerous_configuration" "default" "log" "logging" ]; + }; + "rustversion" = rec { + crateName = "rustversion"; + version = "1.0.5"; + edition = "2018"; + sha256 = "1250m7ymrhp3c5xfmliskmknhf23r7x3cirxy9wmrdwbfnfr1cv1"; + procMacro = true; + build = "build/build.rs"; + authors = [ + "David Tolnay " + ]; + + }; + "ryu" = rec { + crateName = "ryu"; + version = "1.0.5"; + edition = "2018"; + sha256 = "0vpqv1dj7fksa6hm3zpk5rbsjs0ifbfy7xwzsyyil0rx37a03lvi"; + authors = [ + "David Tolnay " + ]; + features = { + }; + }; + "scoped-tls" = rec { + crateName = "scoped-tls"; + version = "1.0.0"; + edition = "2015"; + sha256 = "1hj8lifzvivdb1z02lfnzkshpvk85nkgzxsy2hc0zky9wf894spa"; + authors = [ + "Alex Crichton " + ]; + + }; + "scopeguard" = rec { + crateName = "scopeguard"; + version = "1.1.0"; + edition = "2015"; + sha256 = "1kbqm85v43rq92vx7hfiay6pmcga03vrjbbfwqpyj3pwsg3b16nj"; + authors = [ + "bluss" + ]; + features = { + "default" = [ "use_std" ]; + }; + }; + "sct" = rec { + crateName = "sct"; + version = "0.6.1"; + edition = "2018"; + sha256 = "1ki8qa7yf4d9i4ynsfvwwkpnnqw0m8ayx0jva4w9zrp0k0wbhqmk"; + authors = [ + "Joseph Birr-Pixton " + ]; + dependencies = [ + { + name = "ring"; + packageId = "ring"; + } + { + name = "untrusted"; + packageId = "untrusted"; + } + ]; + + }; + "semver" = rec { + crateName = "semver"; + version = "0.9.0"; + edition = "2015"; + sha256 = "00q4lkcj0rrgbhviv9sd4p6qmdsipkwkbra7rh11jrhq5kpvjzhx"; + authors = [ + "Steve Klabnik " + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "semver-parser"; + packageId = "semver-parser"; + } + ]; + features = { + "ci" = [ "serde" ]; + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "semver-parser" = rec { + crateName = "semver-parser"; + version = "0.7.0"; + edition = "2015"; + sha256 = "18vhypw6zgccnrlm5ps1pwa0khz7ry927iznpr88b87cagr1v2iq"; + authors = [ + "Steve Klabnik " + ]; + + }; + "serde" = rec { + crateName = "serde"; + version = "1.0.127"; + edition = "2015"; + sha256 = "1s7s8vqwf6lgmddcqjpcrx907afgn83lzwnkg5klxlgnmdw9hfzh"; + authors = [ + "Erick Tryzelaar " + "David Tolnay " + ]; + dependencies = [ + { + name = "serde_derive"; + packageId = "serde_derive"; + optional = true; + } + ]; + devDependencies = [ + { + name = "serde_derive"; + packageId = "serde_derive"; + } + ]; + features = { + "default" = [ "std" ]; + "derive" = [ "serde_derive" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "derive" "serde_derive" "std" ]; + }; + "serde_derive" = rec { + crateName = "serde_derive"; + version = "1.0.127"; + edition = "2015"; + sha256 = "1k2ywp5qg490x5kxv7xljfj5a4x54krf15w56836cl9j6inr4950"; + procMacro = true; + authors = [ + "Erick Tryzelaar " + "David Tolnay " + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn"; + } + ]; + features = { + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "serde_json" = rec { + crateName = "serde_json"; + version = "1.0.66"; + edition = "2018"; + sha256 = "09r1ld450g6hbx5xs2j7bcp40ibawayhx1wxnnad0am137d10srk"; + authors = [ + "Erick Tryzelaar " + "David Tolnay " + ]; + dependencies = [ + { + name = "itoa"; + packageId = "itoa"; + usesDefaultFeatures = false; + } + { + name = "ryu"; + packageId = "ryu"; + } + { + name = "serde"; + packageId = "serde"; + usesDefaultFeatures = false; + } + ]; + features = { + "alloc" = [ "serde/alloc" ]; + "default" = [ "std" ]; + "preserve_order" = [ "indexmap" ]; + "std" = [ "serde/std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "serde_urlencoded" = rec { + crateName = "serde_urlencoded"; + version = "0.7.0"; + edition = "2018"; + sha256 = "1s9wnjrak5a0igfhcghhz51kvi7n010j5rs9lmhd5hfrz2kmgypd"; + authors = [ + "Anthony Ramine " + ]; + dependencies = [ + { + name = "form_urlencoded"; + packageId = "form_urlencoded"; + } + { + name = "itoa"; + packageId = "itoa"; + } + { + name = "ryu"; + packageId = "ryu"; + } + { + name = "serde"; + packageId = "serde"; + } + ]; + + }; + "sha1" = rec { + crateName = "sha1"; + version = "0.6.0"; + edition = "2015"; + sha256 = "03gs2q4m67rn2p8xcdfxhip6mpgahdwm12bnb3vh90ahv9grhy95"; + authors = [ + "Armin Ronacher " + ]; + features = { + }; + }; + "sha2" = rec { + crateName = "sha2"; + version = "0.8.2"; + edition = "2015"; + sha256 = "0s9yddvyg6anaikdl86wmwfim25c0d4m0xq0y2ghs34alxpg8mm2"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "block-buffer"; + packageId = "block-buffer"; + } + { + name = "digest"; + packageId = "digest"; + } + { + name = "fake-simd"; + packageId = "fake-simd"; + } + { + name = "opaque-debug"; + packageId = "opaque-debug"; + } + ]; + devDependencies = [ + { + name = "digest"; + packageId = "digest"; + features = [ "dev" ]; + } + ]; + features = { + "asm" = [ "sha2-asm" ]; + "asm-aarch64" = [ "asm" "libc" ]; + "default" = [ "std" ]; + "std" = [ "digest/std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "shitter" = rec { + crateName = "shitter"; + version = "0.1.0"; + edition = "2018"; + crateBin = [ + { name = "shitter"; path = "src/main.rs"; } + ]; + src = lib.cleanSourceWith { filter = sourceFilter; src = ./.; }; + dependencies = [ + { + name = "clap"; + packageId = "clap"; + } + { + name = "parking_lot"; + packageId = "parking_lot"; + } + { + name = "reqwest"; + packageId = "reqwest"; + usesDefaultFeatures = false; + features = [ "gzip" "json" "rustls-tls" ]; + } + { + name = "rocket"; + packageId = "rocket"; + } + { + name = "serde"; + packageId = "serde"; + features = [ "derive" ]; + } + { + name = "serde_json"; + packageId = "serde_json"; + } + { + name = "stderrlog"; + packageId = "stderrlog"; + } + { + name = "thiserror"; + packageId = "thiserror"; + } + { + name = "tokio"; + packageId = "tokio"; + features = [ "full" ]; + } + { + name = "typed-html"; + packageId = "typed-html"; + } + { + name = "url"; + packageId = "url"; + } + ]; + + }; + "signal-hook-registry" = rec { + crateName = "signal-hook-registry"; + version = "1.4.0"; + edition = "2015"; + sha256 = "1c2mhijg54y6c1zi4630yki1vpq3z96ljfnsrdy0rb64ilr767p5"; + authors = [ + "Michal 'vorner' Vaner " + "Masaki Hara " + ]; + dependencies = [ + { + name = "libc"; + packageId = "libc"; + } + ]; + + }; + "siphasher" = rec { + crateName = "siphasher"; + version = "0.2.3"; + edition = "2015"; + sha256 = "1b53m53l24lyhr505lwqzrpjyq5qfnic71mynrcfvm43rybf938b"; + authors = [ + "Frank Denis " + ]; + + }; + "slab" = rec { + crateName = "slab"; + version = "0.4.3"; + edition = "2015"; + sha256 = "09v57dmy9gnfcj3c6gywp7wi09zywxf0ppj07w02hfvy38ysqwzi"; + authors = [ + "Carl Lerche " + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "smallvec" = rec { + crateName = "smallvec"; + version = "1.6.1"; + edition = "2018"; + sha256 = "0kk08axr0ybfbjzk65a41k84mb6sfhyajmfndaka9igkx34kf3zy"; + authors = [ + "The Servo Project Developers" + ]; + features = { + }; + }; + "socket2" = rec { + crateName = "socket2"; + version = "0.4.1"; + edition = "2018"; + sha256 = "1bbc68krf5bsf09xnmq6svkmbndd2mws00ilhiajnga21q7hjpvn"; + authors = [ + "Alex Crichton " + "Thomas de Zeeuw " + ]; + dependencies = [ + { + name = "libc"; + packageId = "libc"; + target = { target, features }: (target."unix" or false); + } + { + name = "winapi"; + packageId = "winapi"; + target = { target, features }: (target."windows" or false); + features = [ "handleapi" "ws2ipdef" "ws2tcpip" ]; + } + ]; + features = { + }; + }; + "spin 0.5.2" = rec { + crateName = "spin"; + version = "0.5.2"; + edition = "2015"; + sha256 = "0b84m6dbzrwf2kxylnw82d3dr8w06av7rfkr8s85fb5f43rwyqvf"; + authors = [ + "Mathijs van de Nes " + "John Ericson " + ]; + + }; + "spin 0.9.2" = rec { + crateName = "spin"; + version = "0.9.2"; + edition = "2015"; + sha256 = "1rch0my17z66fam7hbynvrcs6jk63b08jv4s04mhdksv1jz584ji"; + authors = [ + "Mathijs van de Nes " + "John Ericson " + "Joshua Barretto " + ]; + features = { + "barrier" = [ "mutex" ]; + "default" = [ "lock_api" "mutex" "spin_mutex" "rwlock" "once" "lazy" "barrier" ]; + "lazy" = [ "once" ]; + "lock_api" = [ "lock_api_crate" ]; + "spin_mutex" = [ "mutex" ]; + "ticket_mutex" = [ "mutex" ]; + "use_ticket_mutex" = [ "mutex" "ticket_mutex" ]; + }; + resolvedDefaultFeatures = [ "mutex" "spin_mutex" ]; + }; + "stable-pattern" = rec { + crateName = "stable-pattern"; + version = "0.1.0"; + edition = "2018"; + sha256 = "0i8hq82vm82mqj02qqcsd7caibrih7x5w3a1xpm8hpv30261cr25"; + authors = [ + "Sergio Benitez " + ]; + dependencies = [ + { + name = "memchr"; + packageId = "memchr"; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "std" ]; + "std" = [ "memchr/std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "standback" = rec { + crateName = "standback"; + version = "0.2.17"; + edition = "2018"; + sha256 = "1zr8zy3kzryaggz3k0j4135m3zbd31pyqmja8cyj8yp07mpzn4z1"; + authors = [ + "Jacob Pratt " + "The Rust Project Developers" + ]; + buildDependencies = [ + { + name = "version_check"; + packageId = "version_check"; + } + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "std" ]; + }; + "state" = rec { + crateName = "state"; + version = "0.5.2"; + edition = "2018"; + sha256 = "1rbd5zg3zsj95di88h4my346llaiyj89cp1nbr5h9lz6d59lzkw7"; + authors = [ + "Sergio Benitez " + ]; + dependencies = [ + { + name = "loom"; + packageId = "loom"; + target = { target, features }: (target."loom" or false); + features = [ "checkpoint" ]; + } + ]; + features = { + }; + }; + "stderrlog" = rec { + crateName = "stderrlog"; + version = "0.5.1"; + edition = "2018"; + sha256 = "0f2s2lfkjkjfn5w517zy6ffmpc2cw275w9m6mwcs151yzwp3x9a5"; + authors = [ + "Doug Goldstein " + ]; + dependencies = [ + { + name = "atty"; + packageId = "atty"; + } + { + name = "chrono"; + packageId = "chrono"; + } + { + name = "log"; + packageId = "log"; + features = [ "std" ]; + } + { + name = "termcolor"; + packageId = "termcolor"; + } + { + name = "thread_local"; + packageId = "thread_local"; + } + ]; + + }; + "stdweb" = rec { + crateName = "stdweb"; + version = "0.4.20"; + edition = "2015"; + sha256 = "1md14n9rzxzdskz3hpgln8vxfwqsw2cswc0f5nslh4r82rmlj8nh"; + authors = [ + "Jan Bujak " + ]; + dependencies = [ + { + name = "discard"; + packageId = "discard"; + } + { + name = "stdweb-derive"; + packageId = "stdweb-derive"; + } + { + name = "stdweb-internal-macros"; + packageId = "stdweb-internal-macros"; + } + { + name = "stdweb-internal-runtime"; + packageId = "stdweb-internal-runtime"; + } + { + name = "wasm-bindgen"; + packageId = "wasm-bindgen"; + target = { target, features }: ((target."arch" == "wasm32") && (target."vendor" == "unknown") && (target."os" == "unknown") && (!(target."cargo_web" or false))); + } + ]; + buildDependencies = [ + { + name = "rustc_version"; + packageId = "rustc_version"; + } + ]; + features = { + "default" = [ "serde" "serde_json" ]; + "experimental_features_which_may_break_on_minor_version_bumps" = [ "futures-support" ]; + "futures-support" = [ "futures-core-preview" "futures-channel-preview" "futures-util-preview" "futures-executor-preview" ]; + }; + }; + "stdweb-derive" = rec { + crateName = "stdweb-derive"; + version = "0.5.3"; + edition = "2015"; + sha256 = "1vsh7g0gaxn4kxqq3knhymdn02p2pfxmnd2j0vplpj6c1yj60yn8"; + procMacro = true; + authors = [ + "Jan Bujak " + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "serde"; + packageId = "serde"; + } + { + name = "serde_derive"; + packageId = "serde_derive"; + } + { + name = "syn"; + packageId = "syn"; + usesDefaultFeatures = false; + features = [ "derive" "parsing" "printing" ]; + } + ]; + + }; + "stdweb-internal-macros" = rec { + crateName = "stdweb-internal-macros"; + version = "0.2.9"; + edition = "2015"; + sha256 = "049fq8fl5ny9l5if2qv7kxwng7g6ns95h4fbm3zx360dmpv5zyjq"; + procMacro = true; + authors = [ + "Jan Bujak " + ]; + dependencies = [ + { + name = "base-x"; + packageId = "base-x"; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "serde"; + packageId = "serde"; + } + { + name = "serde_derive"; + packageId = "serde_derive"; + } + { + name = "serde_json"; + packageId = "serde_json"; + } + { + name = "sha1"; + packageId = "sha1"; + } + { + name = "syn"; + packageId = "syn"; + usesDefaultFeatures = false; + features = [ "full" "parsing" "printing" "clone-impls" ]; + } + ]; + + }; + "stdweb-internal-runtime" = rec { + crateName = "stdweb-internal-runtime"; + version = "0.1.5"; + edition = "2015"; + sha256 = "1h0nkppb4r8dbrbms2hw9n5xdcs392m0r5hj3b6lsx3h6fx02dr1"; + authors = [ + "Jan Bujak " + ]; + features = { + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "string_cache" = rec { + crateName = "string_cache"; + version = "0.7.5"; + edition = "2015"; + sha256 = "0rrdb822gc1fs3qq4camgj3kh4182bs79hpqxhdrpmlz5yl5ih49"; + authors = [ + "The Servo Project Developers" + ]; + dependencies = [ + { + name = "lazy_static"; + packageId = "lazy_static"; + } + { + name = "new_debug_unreachable"; + packageId = "new_debug_unreachable"; + } + { + name = "phf_shared"; + packageId = "phf_shared"; + } + { + name = "precomputed-hash"; + packageId = "precomputed-hash"; + } + { + name = "serde"; + packageId = "serde"; + } + { + name = "string_cache_shared"; + packageId = "string_cache_shared"; + } + ]; + buildDependencies = [ + { + name = "string_cache_codegen"; + packageId = "string_cache_codegen"; + } + ]; + devDependencies = [ + { + name = "string_cache_codegen"; + packageId = "string_cache_codegen"; + } + ]; + features = { + }; + }; + "string_cache_codegen" = rec { + crateName = "string_cache_codegen"; + version = "0.4.4"; + edition = "2015"; + sha256 = "1ik78h9gs874i24rkyh0myg6x4ni2a9cazbv5yzs9yavnv8mxx7h"; + libPath = "lib.rs"; + authors = [ + "The Servo Project Developers" + ]; + dependencies = [ + { + name = "phf_generator"; + packageId = "phf_generator"; + } + { + name = "phf_shared"; + packageId = "phf_shared"; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "string_cache_shared"; + packageId = "string_cache_shared"; + } + ]; + + }; + "string_cache_shared" = rec { + crateName = "string_cache_shared"; + version = "0.3.0"; + edition = "2015"; + sha256 = "1z7dpdix1m42x6ddshdcpjf91ml9mhvnskmiv5kd8hcpq0dlv25i"; + libPath = "lib.rs"; + authors = [ + "The Servo Project Developers" + ]; + + }; + "strsim" = rec { + crateName = "strsim"; + version = "0.10.0"; + edition = "2015"; + sha256 = "08s69r4rcrahwnickvi0kq49z524ci50capybln83mg6b473qivk"; + authors = [ + "Danny Guo " + ]; + + }; + "strum" = rec { + crateName = "strum"; + version = "0.18.0"; + edition = "2015"; + sha256 = "0asjskn1qhqqfiq673np0gvmnd1rsp506m38vk53gi7l93mq3gap"; + authors = [ + "Peter Glotfelty " + ]; + features = { + "derive" = [ "strum_macros" ]; + }; + }; + "strum_macros" = rec { + crateName = "strum_macros"; + version = "0.18.0"; + edition = "2015"; + sha256 = "0k3pwbv0c8q00jnsjshzfc2d5r3y6ppgf9fz7pyknrgaz2immj47"; + procMacro = true; + authors = [ + "Peter Glotfelty " + ]; + dependencies = [ + { + name = "heck"; + packageId = "heck"; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn"; + features = [ "parsing" "extra-traits" ]; + } + ]; + features = { + }; + }; + "syn" = rec { + crateName = "syn"; + version = "1.0.74"; + edition = "2018"; + sha256 = "175j336afigixhzixxs821sgw2xh38v023y2vg1qhi8dalrdhwqq"; + authors = [ + "David Tolnay " + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + usesDefaultFeatures = false; + } + { + name = "quote"; + packageId = "quote"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "unicode-xid"; + packageId = "unicode-xid 0.2.2"; + } + ]; + features = { + "default" = [ "derive" "parsing" "printing" "clone-impls" "proc-macro" ]; + "printing" = [ "quote" ]; + "proc-macro" = [ "proc-macro2/proc-macro" "quote/proc-macro" ]; + "test" = [ "syn-test-suite/all-features" ]; + }; + resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "extra-traits" "full" "parsing" "printing" "proc-macro" "quote" "visit" "visit-mut" ]; + }; + "tempfile" = rec { + crateName = "tempfile"; + version = "3.2.0"; + edition = "2018"; + sha256 = "08pbf3c1i42382dc44dil5bgiawcsi0qk6zdibw10f69rxiwdhfs"; + authors = [ + "Steven Allen " + "The Rust Project Developers" + "Ashley Mannix " + "Jason White " + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + { + name = "libc"; + packageId = "libc"; + target = { target, features }: (target."unix" or false); + } + { + name = "rand"; + packageId = "rand 0.8.4"; + } + { + name = "redox_syscall"; + packageId = "redox_syscall 0.2.9"; + target = { target, features }: (target."os" == "redox"); + } + { + name = "remove_dir_all"; + packageId = "remove_dir_all"; + } + { + name = "winapi"; + packageId = "winapi"; + target = { target, features }: (target."windows" or false); + features = [ "fileapi" "handleapi" "winbase" ]; + } + ]; + + }; + "term" = rec { + crateName = "term"; + version = "0.5.2"; + edition = "2015"; + sha256 = "0hkgjrfisj6zjwz525639pmsvzhlc48a0h65nw87qrdp6jihdlgd"; + authors = [ + "The Rust Project Developers" + "Steven Allen" + ]; + dependencies = [ + { + name = "byteorder"; + packageId = "byteorder"; + } + { + name = "dirs"; + packageId = "dirs"; + } + { + name = "winapi"; + packageId = "winapi"; + target = { target, features }: (target."windows" or false); + features = [ "consoleapi" "wincon" "handleapi" "fileapi" ]; + } + ]; + features = { + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "termcolor" = rec { + crateName = "termcolor"; + version = "1.1.2"; + edition = "2018"; + sha256 = "1x65i1ny4m6z1by62ra6wdcrd557p2ysm866x0pg60zby2cxizid"; + authors = [ + "Andrew Gallant " + ]; + dependencies = [ + { + name = "winapi-util"; + packageId = "winapi-util"; + target = { target, features }: (target."windows" or false); + } + ]; + + }; + "textwrap" = rec { + crateName = "textwrap"; + version = "0.12.1"; + edition = "2018"; + sha256 = "12978qmkl5gcp94lxndpvp9qxq8mxp7hm9xbrw3422dgikchhc10"; + authors = [ + "Martin Geisler " + ]; + dependencies = [ + { + name = "unicode-width"; + packageId = "unicode-width"; + } + ]; + + }; + "thiserror" = rec { + crateName = "thiserror"; + version = "1.0.26"; + edition = "2018"; + sha256 = "1qmz542pq4wmz3p0s4kavsqv09h0x99klkf3k33ydjy1x97rw4ck"; + authors = [ + "David Tolnay " + ]; + dependencies = [ + { + name = "thiserror-impl"; + packageId = "thiserror-impl"; + } + ]; + + }; + "thiserror-impl" = rec { + crateName = "thiserror-impl"; + version = "1.0.26"; + edition = "2018"; + sha256 = "0ia72qiynlws5avb8f1xqlazp4g6bqgzjbwy5vs6nyg7myh6j386"; + procMacro = true; + authors = [ + "David Tolnay " + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn"; + } + ]; + + }; + "thread_local" = rec { + crateName = "thread_local"; + version = "1.0.1"; + edition = "2015"; + sha256 = "054vlrr1vsdy1h4b7n99mr24pnj8928ig9qwzg36wnkld4dns36l"; + authors = [ + "Amanieu d'Antras " + ]; + dependencies = [ + { + name = "lazy_static"; + packageId = "lazy_static"; + } + ]; + + }; + "time 0.1.43" = rec { + crateName = "time"; + version = "0.1.43"; + edition = "2015"; + sha256 = "0f14wrgxj7ya2v4msg5mni7046bsm2angm7cn3pd3yv04gpm12na"; + authors = [ + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "libc"; + packageId = "libc"; + } + { + name = "winapi"; + packageId = "winapi"; + target = { target, features }: (target."windows" or false); + features = [ "std" "minwinbase" "minwindef" "ntdef" "profileapi" "sysinfoapi" "timezoneapi" ]; + } + ]; + devDependencies = [ + { + name = "winapi"; + packageId = "winapi"; + features = [ "std" "processthreadsapi" "winbase" ]; + } + ]; + + }; + "time 0.2.27" = rec { + crateName = "time"; + version = "0.2.27"; + edition = "2018"; + sha256 = "0hm209d078jfgxzjhi5xqim64q31rlj1h70zz57qbmpbirzsjlj7"; + authors = [ + "Jacob Pratt " + ]; + dependencies = [ + { + name = "const_fn"; + packageId = "const_fn"; + } + { + name = "libc"; + packageId = "libc"; + optional = true; + target = { target, features }: (target."unix" or false); + } + { + name = "standback"; + packageId = "standback"; + usesDefaultFeatures = false; + } + { + name = "stdweb"; + packageId = "stdweb"; + optional = true; + usesDefaultFeatures = false; + target = { target, features }: (target."arch" == "wasm32"); + } + { + name = "time-macros"; + packageId = "time-macros"; + } + { + name = "winapi"; + packageId = "winapi"; + optional = true; + target = { target, features }: (target."windows" or false); + features = [ "minwinbase" "minwindef" "timezoneapi" ]; + } + ]; + buildDependencies = [ + { + name = "version_check"; + packageId = "version_check"; + } + ]; + devDependencies = [ + { + name = "standback"; + packageId = "standback"; + } + ]; + features = { + "default" = [ "deprecated" "std" ]; + "std" = [ "libc" "winapi" "stdweb" "standback/std" ]; + }; + resolvedDefaultFeatures = [ "default" "deprecated" "libc" "std" "stdweb" "winapi" ]; + }; + "time-macros" = rec { + crateName = "time-macros"; + version = "0.1.1"; + edition = "2018"; + sha256 = "1wg24yxpxcfmim6dgblrf8p321m7cyxpdivzvp8bcb7i4rp9qzlm"; + authors = [ + "Jacob Pratt " + ]; + dependencies = [ + { + name = "proc-macro-hack"; + packageId = "proc-macro-hack"; + } + { + name = "time-macros-impl"; + packageId = "time-macros-impl"; + } + ]; + + }; + "time-macros-impl" = rec { + crateName = "time-macros-impl"; + version = "0.1.2"; + edition = "2018"; + sha256 = "0bs8xc3qbndk4nw6vwnmh5bwail6vwji4hd1aqzly6a33cd18g7x"; + procMacro = true; + authors = [ + "Jacob Pratt " + ]; + dependencies = [ + { + name = "proc-macro-hack"; + packageId = "proc-macro-hack"; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "standback"; + packageId = "standback"; + usesDefaultFeatures = false; + } + { + name = "syn"; + packageId = "syn"; + usesDefaultFeatures = false; + features = [ "proc-macro" "parsing" "printing" ]; + } + ]; + + }; + "tinyvec" = rec { + crateName = "tinyvec"; + version = "1.3.1"; + edition = "2018"; + sha256 = "0f2kkgsf1ivxdjyznzg6xlcivc99krs9584nbqxpbxmrh48ix2l4"; + authors = [ + "Lokathor " + ]; + dependencies = [ + { + name = "tinyvec_macros"; + packageId = "tinyvec_macros"; + optional = true; + } + ]; + features = { + "alloc" = [ "tinyvec_macros" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "tinyvec_macros" ]; + }; + "tinyvec_macros" = rec { + crateName = "tinyvec_macros"; + version = "0.1.0"; + edition = "2018"; + sha256 = "0p5zvgbas5nh403fbxica819mf3g83n8g2hzpfazfr56w6klv9yd"; + authors = [ + "Soveu " + ]; + + }; + "tokio" = rec { + crateName = "tokio"; + version = "1.9.0"; + edition = "2018"; + sha256 = "0k3b6vi6j8fchxw92q9c6n55wbqm5mhkx1bn29npw15726gk8ysb"; + authors = [ + "Tokio Contributors " + ]; + dependencies = [ + { + name = "bytes"; + packageId = "bytes"; + 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 = "num_cpus"; + packageId = "num_cpus"; + optional = true; + } + { + name = "once_cell"; + packageId = "once_cell"; + optional = true; + } + { + name = "parking_lot"; + packageId = "parking_lot"; + optional = true; + } + { + name = "pin-project-lite"; + packageId = "pin-project-lite"; + } + { + name = "signal-hook-registry"; + packageId = "signal-hook-registry"; + optional = true; + target = { target, features }: (target."unix" or false); + } + { + name = "tokio-macros"; + packageId = "tokio-macros"; + optional = true; + } + { + name = "winapi"; + packageId = "winapi"; + optional = true; + usesDefaultFeatures = false; + target = { target, features }: (target."windows" or false); + } + ]; + buildDependencies = [ + { + name = "autocfg"; + packageId = "autocfg 1.0.1"; + } + ]; + devDependencies = [ + { + name = "libc"; + packageId = "libc"; + target = {target, features}: (target."unix" or false); + } + ]; + features = { + "full" = [ "fs" "io-util" "io-std" "macros" "net" "parking_lot" "process" "rt" "rt-multi-thread" "signal" "sync" "time" ]; + "io-util" = [ "memchr" "bytes" ]; + "macros" = [ "tokio-macros" ]; + "net" = [ "libc" "mio/os-poll" "mio/os-util" "mio/tcp" "mio/udp" "mio/uds" "winapi/namedpipeapi" ]; + "process" = [ "bytes" "once_cell" "libc" "mio/os-poll" "mio/os-util" "mio/uds" "signal-hook-registry" "winapi/threadpoollegacyapiset" ]; + "rt-multi-thread" = [ "num_cpus" "rt" ]; + "signal" = [ "once_cell" "libc" "mio/os-poll" "mio/uds" "mio/os-util" "signal-hook-registry" "winapi/consoleapi" ]; + }; + resolvedDefaultFeatures = [ "bytes" "default" "fs" "full" "io-std" "io-util" "libc" "macros" "memchr" "mio" "net" "num_cpus" "once_cell" "parking_lot" "process" "rt" "rt-multi-thread" "signal" "signal-hook-registry" "sync" "time" "tokio-macros" "winapi" ]; + }; + "tokio-macros" = rec { + crateName = "tokio-macros"; + version = "1.3.0"; + edition = "2018"; + sha256 = "045igm2h1mfjakbi68hrl07dflgs2rfvvjff17ylxgjf3zk3nisl"; + procMacro = true; + authors = [ + "Tokio Contributors " + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn"; + features = [ "full" ]; + } + ]; + + }; + "tokio-rustls" = rec { + crateName = "tokio-rustls"; + version = "0.22.0"; + edition = "2018"; + sha256 = "1dp1s2kai081f3fn9gjq92x2lw7lm7iqpcsl02cg2zg5fbg48s5w"; + authors = [ + "quininer kel " + ]; + dependencies = [ + { + name = "rustls"; + packageId = "rustls"; + } + { + name = "tokio"; + packageId = "tokio"; + } + { + name = "webpki"; + packageId = "webpki"; + } + ]; + devDependencies = [ + { + name = "tokio"; + packageId = "tokio"; + features = [ "full" ]; + } + ]; + features = { + "dangerous_configuration" = [ "rustls/dangerous_configuration" ]; + }; + }; + "tokio-stream" = rec { + crateName = "tokio-stream"; + version = "0.1.7"; + edition = "2018"; + sha256 = "0zvj8d2i1147s4i3ml3lh3h6fypncjmbw0h1mhck3w2kh9lkybvv"; + authors = [ + "Tokio Contributors " + ]; + dependencies = [ + { + name = "futures-core"; + packageId = "futures-core"; + } + { + name = "pin-project-lite"; + packageId = "pin-project-lite"; + } + { + name = "tokio"; + packageId = "tokio"; + features = [ "sync" ]; + } + ]; + devDependencies = [ + { + name = "tokio"; + packageId = "tokio"; + features = [ "full" "test-util" ]; + } + ]; + features = { + "default" = [ "time" ]; + "fs" = [ "tokio/fs" ]; + "io-util" = [ "tokio/io-util" ]; + "net" = [ "tokio/net" ]; + "signal" = [ "tokio/signal" ]; + "sync" = [ "tokio/sync" "tokio-util" ]; + "time" = [ "tokio/time" ]; + }; + resolvedDefaultFeatures = [ "default" "signal" "time" ]; + }; + "tokio-util" = rec { + crateName = "tokio-util"; + version = "0.6.7"; + edition = "2018"; + sha256 = "14imdf24bng2ynsxa9hvmcx65h4xm75zib5mavdlk84lil60pahw"; + authors = [ + "Tokio Contributors " + ]; + dependencies = [ + { + name = "bytes"; + packageId = "bytes"; + } + { + name = "futures-core"; + packageId = "futures-core"; + } + { + name = "futures-sink"; + packageId = "futures-sink"; + } + { + name = "log"; + packageId = "log"; + } + { + name = "pin-project-lite"; + packageId = "pin-project-lite"; + } + { + name = "tokio"; + packageId = "tokio"; + features = [ "sync" ]; + } + ]; + devDependencies = [ + { + name = "tokio"; + packageId = "tokio"; + features = [ "full" ]; + } + ]; + features = { + "__docs_rs" = [ "futures-util" ]; + "compat" = [ "futures-io" ]; + "full" = [ "codec" "compat" "io" "time" "net" "rt" ]; + "net" = [ "tokio/net" ]; + "rt" = [ "tokio/rt" ]; + "time" = [ "tokio/time" "slab" ]; + }; + resolvedDefaultFeatures = [ "codec" "default" "io" ]; + }; + "toml" = rec { + crateName = "toml"; + version = "0.5.8"; + edition = "2018"; + sha256 = "1apcmjrrjw429pjw7mqlmdwwd67g8305vwqy4kw3swr612bl44d3"; + authors = [ + "Alex Crichton " + ]; + dependencies = [ + { + name = "serde"; + packageId = "serde"; + } + ]; + features = { + "preserve_order" = [ "indexmap" ]; + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "tower-service" = rec { + crateName = "tower-service"; + version = "0.3.1"; + edition = "2018"; + sha256 = "1iih764s3f6vlkspfmr72fkrs2lw1v3wiqmc6bd5zq1hdlfzs39n"; + authors = [ + "Tower Maintainers " + ]; + + }; + "tracing" = rec { + crateName = "tracing"; + version = "0.1.26"; + edition = "2018"; + sha256 = "17dqjhixmnbrk0c99ydb3b9pygjnzfb7yhlasb6134s4jy6fpb89"; + authors = [ + "Eliza Weisman " + "Tokio Contributors " + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + { + name = "pin-project-lite"; + packageId = "pin-project-lite"; + } + { + name = "tracing-core"; + packageId = "tracing-core"; + usesDefaultFeatures = false; + } + ]; + features = { + "attributes" = [ "tracing-attributes" ]; + "default" = [ "std" "attributes" ]; + "log-always" = [ "log" ]; + "std" = [ "tracing-core/std" ]; + }; + resolvedDefaultFeatures = [ "std" ]; + }; + "tracing-core" = rec { + crateName = "tracing-core"; + version = "0.1.18"; + edition = "2018"; + sha256 = "0lm0li6lx75jgbbgxsb45439257sqb0j7828caf2hjqsigwi9zx9"; + authors = [ + "Tokio Contributors " + ]; + dependencies = [ + { + name = "lazy_static"; + packageId = "lazy_static"; + optional = true; + } + ]; + features = { + "default" = [ "std" ]; + "std" = [ "lazy_static" ]; + }; + resolvedDefaultFeatures = [ "lazy_static" "std" ]; + }; + "try-lock" = rec { + crateName = "try-lock"; + version = "0.2.3"; + edition = "2015"; + sha256 = "0hkn1ksmg5hdqgqdw1ahy5qk69f4crh2psf0v61qphyrf777nm2r"; + authors = [ + "Sean McArthur " + ]; + + }; + "twoway" = rec { + crateName = "twoway"; + version = "0.2.2"; + edition = "2015"; + sha256 = "0iqb54firzb8jinl2674vz8s6c4h30842sa3v9pcs93w1m3gnzy5"; + authors = [ + "bluss" + ]; + dependencies = [ + { + name = "memchr"; + packageId = "memchr"; + usesDefaultFeatures = false; + } + { + name = "unchecked-index"; + packageId = "unchecked-index"; + } + ]; + features = { + "all" = [ "jetscii" "pattern" ]; + "benchmarks" = [ "galil-seiferas" "pattern" ]; + "default" = [ "use_std" ]; + "use_std" = [ "memchr/use_std" ]; + }; + resolvedDefaultFeatures = [ "default" "use_std" ]; + }; + "typed-html" = rec { + crateName = "typed-html"; + version = "0.2.2"; + edition = "2018"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/bodil/typed-html"; + rev = "d95ce1a2930f2385d4f3765d061dbeff3503107f"; + sha256 = "0z1zprngz92yscv07vyqd0kkd8kkpr20fs7ks9c7yg9ygn8ns882"; + }; + authors = [ + "Bodil Stokke " + ]; + dependencies = [ + { + name = "htmlescape"; + packageId = "htmlescape"; + } + { + name = "language-tags"; + packageId = "language-tags"; + } + { + name = "mime"; + packageId = "mime"; + } + { + name = "proc-macro-hack"; + packageId = "proc-macro-hack"; + } + { + name = "proc-macro-nested"; + packageId = "proc-macro-nested"; + } + { + name = "strum"; + packageId = "strum"; + } + { + name = "strum_macros"; + packageId = "strum_macros"; + } + { + name = "typed-html-macros"; + packageId = "typed-html-macros"; + } + ]; + features = { + "dodrio_macro" = [ "web-sys" "dodrio" "typed-html-macros/dodrio" ]; + }; + }; + "typed-html-macros" = rec { + crateName = "typed-html-macros"; + version = "0.2.2"; + edition = "2018"; + sha256 = "0mkk7888xkmsjwhynnlgsksg6mz8il3z2q05g3s4flfngshxp924"; + procMacro = true; + authors = [ + "Bodil Stokke " + ]; + dependencies = [ + { + name = "ansi_term"; + packageId = "ansi_term"; + } + { + name = "lalrpop-util"; + packageId = "lalrpop-util"; + } + { + name = "proc-macro-hack"; + packageId = "proc-macro-hack"; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + features = [ "nightly" ]; + } + { + name = "quote"; + packageId = "quote"; + } + ]; + buildDependencies = [ + { + name = "lalrpop"; + packageId = "lalrpop"; + } + { + name = "version_check"; + packageId = "version_check"; + } + ]; + features = { + }; + }; + "typenum" = rec { + crateName = "typenum"; + version = "1.13.0"; + edition = "2018"; + sha256 = "01lbbspn4080yg8wp6y7q3xcqih1c1dmkkx4pwax4z1a9436k7w7"; + build = "build/main.rs"; + authors = [ + "Paho Lurie-Gregg " + "Andre Bogus " + ]; + features = { + }; + }; + "ubyte" = rec { + crateName = "ubyte"; + version = "0.10.1"; + edition = "2018"; + sha256 = "1zp8x55w57dkcy20vnc50izsjcgz7mj9b0d9z3i5v188wywnnxa2"; + authors = [ + "Sergio Benitez " + ]; + dependencies = [ + { + name = "serde"; + packageId = "serde"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + }; + resolvedDefaultFeatures = [ "default" "serde" ]; + }; + "uncased" = rec { + crateName = "uncased"; + version = "0.9.6"; + edition = "2018"; + sha256 = "1l3flz044hfdnsddahj08dflqprfydszkm4vkf458l724xryvbjv"; + authors = [ + "Sergio Benitez " + ]; + dependencies = [ + { + name = "serde"; + packageId = "serde"; + optional = true; + usesDefaultFeatures = false; + } + ]; + buildDependencies = [ + { + name = "version_check"; + packageId = "version_check"; + } + ]; + features = { + "default" = [ "alloc" ]; + "with-serde" = [ "serde" ]; + "with-serde-alloc" = [ "serde" "serde/alloc" "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "serde" "with-serde-alloc" ]; + }; + "unchecked-index" = rec { + crateName = "unchecked-index"; + version = "0.2.2"; + edition = "2015"; + sha256 = "0p6qcai1mjayx59cpgk27d0zgw9hz9r1ira5jiqil66f4ba8dfpf"; + authors = [ + "bluss" + ]; + + }; + "unicode-bidi" = rec { + crateName = "unicode-bidi"; + version = "0.3.5"; + edition = "2018"; + sha256 = "1q07h5kp9jszwf0bkrpa1v5wmv04dv920x3w2xy6pjdikchbxf7f"; + libName = "unicode_bidi"; + authors = [ + "The Servo Project Developers" + ]; + dependencies = [ + { + name = "matches"; + packageId = "matches"; + } + ]; + features = { + "flame_it" = [ "flame" "flamer" ]; + "with_serde" = [ "serde" ]; + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "unicode-normalization" = rec { + crateName = "unicode-normalization"; + version = "0.1.19"; + edition = "2018"; + sha256 = "1yabhmg8zlcksda3ajly9hpbzqgbhknxwch8dwkfkaa1569r0ifm"; + authors = [ + "kwantam " + "Manish Goregaokar " + ]; + dependencies = [ + { + name = "tinyvec"; + packageId = "tinyvec"; + features = [ "alloc" ]; + } + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "unicode-segmentation" = rec { + crateName = "unicode-segmentation"; + version = "1.8.0"; + edition = "2018"; + sha256 = "0nrqfgxkh00wb5dhl0874z20789i2yjimp6ndgh4ay4yjjd895c8"; + authors = [ + "kwantam " + "Manish Goregaokar " + ]; + features = { + }; + }; + "unicode-width" = rec { + crateName = "unicode-width"; + version = "0.1.8"; + edition = "2015"; + sha256 = "1qxizyi6xbcqyi4z79p523ywvmgsfcgfqb3zv3c8i6x1jcc5jdwk"; + authors = [ + "kwantam " + "Manish Goregaokar " + ]; + features = { + "rustc-dep-of-std" = [ "std" "core" "compiler_builtins" ]; + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "unicode-xid 0.1.0" = rec { + crateName = "unicode-xid"; + version = "0.1.0"; + edition = "2015"; + sha256 = "1z57lqh4s18rr4x0j4fw4fmp9hf9346h0kmdgqsqx0fhjr3k0wpw"; + authors = [ + "erick.tryzelaar " + "kwantam " + ]; + features = { + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "unicode-xid 0.2.2" = rec { + crateName = "unicode-xid"; + version = "0.2.2"; + edition = "2015"; + sha256 = "1wrkgcw557v311dkdb6n2hrix9dm2qdsb1zpw7pn79l03zb85jwc"; + authors = [ + "erick.tryzelaar " + "kwantam " + "Manish Goregaokar " + ]; + features = { + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "untrusted" = rec { + crateName = "untrusted"; + version = "0.7.1"; + edition = "2018"; + sha256 = "0jkbqaj9d3v5a91pp3wp9mffvng1nhycx6sh4qkdd9qyr62ccmm1"; + libPath = "src/untrusted.rs"; + authors = [ + "Brian Smith " + ]; + + }; + "url" = rec { + crateName = "url"; + version = "2.2.2"; + edition = "2018"; + sha256 = "132pzpvfvpw33gjlzqd55n5iag9qddzffq8qbp1myfykna1w61x5"; + authors = [ + "The rust-url developers" + ]; + dependencies = [ + { + name = "form_urlencoded"; + packageId = "form_urlencoded"; + } + { + name = "idna"; + packageId = "idna"; + } + { + name = "matches"; + packageId = "matches"; + } + { + name = "percent-encoding"; + packageId = "percent-encoding"; + } + ]; + + }; + "vec_map" = rec { + crateName = "vec_map"; + version = "0.8.2"; + edition = "2015"; + sha256 = "1481w9g1dw9rxp3l6snkdqihzyrd2f8vispzqmwjwsdyhw8xzggi"; + authors = [ + "Alex Crichton " + "Jorge Aparicio " + "Alexis Beingessner " + "Brian Anderson <>" + "tbu- <>" + "Manish Goregaokar <>" + "Aaron Turon " + "Adolfo Ochagavía <>" + "Niko Matsakis <>" + "Steven Fackler <>" + "Chase Southwood " + "Eduard Burtescu <>" + "Florian Wilkens <>" + "Félix Raimundo <>" + "Tibor Benke <>" + "Markus Siemens " + "Josh Branchaud " + "Huon Wilson " + "Corey Farwell " + "Aaron Liblong <>" + "Nick Cameron " + "Patrick Walton " + "Felix S Klock II <>" + "Andrew Paseltiner " + "Sean McArthur " + "Vadim Petrochenkov <>" + ]; + features = { + "eders" = [ "serde" ]; + }; + }; + "version_check" = rec { + crateName = "version_check"; + version = "0.9.3"; + edition = "2015"; + sha256 = "1zmkcgj2m0pq0l4wnhrp1wl1lygf7x2h5p7pvjwc4719lnlxrv2z"; + authors = [ + "Sergio Benitez " + ]; + + }; + "want" = rec { + crateName = "want"; + version = "0.3.0"; + edition = "2018"; + sha256 = "181b2zmwfq389x9n2g1n37cvcvvdand832zz6v8i1l8wrdlaks0w"; + authors = [ + "Sean McArthur " + ]; + dependencies = [ + { + name = "log"; + packageId = "log"; + } + { + name = "try-lock"; + packageId = "try-lock"; + } + ]; + + }; + "wasi 0.10.2+wasi-snapshot-preview1" = rec { + crateName = "wasi"; + version = "0.10.2+wasi-snapshot-preview1"; + edition = "2018"; + sha256 = "1ii7nff4y1mpcrxzzvbpgxm7a1nn3szjf1n21jnx37c2g6dbsvzx"; + authors = [ + "The Cranelift Project Developers" + ]; + features = { + "default" = [ "std" ]; + "rustc-dep-of-std" = [ "compiler_builtins" "core" "rustc-std-workspace-alloc" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "wasi 0.9.0+wasi-snapshot-preview1" = rec { + crateName = "wasi"; + version = "0.9.0+wasi-snapshot-preview1"; + edition = "2018"; + sha256 = "06g5v3vrdapfzvfq662cij7v8a1flwr2my45nnncdv2galrdzkfc"; + authors = [ + "The Cranelift Project Developers" + ]; + features = { + "default" = [ "std" ]; + "rustc-dep-of-std" = [ "compiler_builtins" "core" "rustc-std-workspace-alloc" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "wasm-bindgen" = rec { + crateName = "wasm-bindgen"; + version = "0.2.75"; + edition = "2018"; + sha256 = "11i5v9zr4bpvlmpm30rxmz5d832zmg68xl9f1rlfi3qryk4fq25n"; + authors = [ + "The wasm-bindgen Developers" + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + { + name = "serde"; + packageId = "serde"; + optional = true; + } + { + name = "serde_json"; + packageId = "serde_json"; + optional = true; + } + { + name = "wasm-bindgen-macro"; + packageId = "wasm-bindgen-macro"; + } + ]; + features = { + "default" = [ "spans" "std" ]; + "enable-interning" = [ "std" ]; + "serde-serialize" = [ "serde" "serde_json" "std" ]; + "spans" = [ "wasm-bindgen-macro/spans" ]; + "strict-macro" = [ "wasm-bindgen-macro/strict-macro" ]; + "xxx_debug_only_print_generated_code" = [ "wasm-bindgen-macro/xxx_debug_only_print_generated_code" ]; + }; + resolvedDefaultFeatures = [ "default" "serde" "serde-serialize" "serde_json" "spans" "std" ]; + }; + "wasm-bindgen-backend" = rec { + crateName = "wasm-bindgen-backend"; + version = "0.2.75"; + edition = "2018"; + sha256 = "17s75vhjlxd4zi9c7rnw64z3ckyb2cnpw9kbbfn3mlk33als62jq"; + authors = [ + "The wasm-bindgen Developers" + ]; + dependencies = [ + { + name = "bumpalo"; + packageId = "bumpalo"; + } + { + name = "lazy_static"; + packageId = "lazy_static"; + } + { + name = "log"; + packageId = "log"; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn"; + features = [ "full" ]; + } + { + name = "wasm-bindgen-shared"; + packageId = "wasm-bindgen-shared"; + } + ]; + features = { + "extra-traits" = [ "syn/extra-traits" ]; + }; + resolvedDefaultFeatures = [ "spans" ]; + }; + "wasm-bindgen-futures" = rec { + crateName = "wasm-bindgen-futures"; + version = "0.4.25"; + edition = "2018"; + sha256 = "037ydhi8hc93y37nnh255zvdphr8i8pif84gvczy3n5dqchnnr0n"; + authors = [ + "The wasm-bindgen Developers" + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + { + name = "js-sys"; + packageId = "js-sys"; + } + { + name = "wasm-bindgen"; + packageId = "wasm-bindgen"; + } + { + name = "web-sys"; + packageId = "web-sys"; + target = { target, features }: (builtins.elem "atomics" targetFeatures); + features = [ "MessageEvent" "Worker" ]; + } + ]; + features = { + "futures-core-03-stream" = [ "futures-core" ]; + }; + }; + "wasm-bindgen-macro" = rec { + crateName = "wasm-bindgen-macro"; + version = "0.2.75"; + edition = "2018"; + sha256 = "177hwmvq49ib3y8dhhnsvf4klsxdcvkz4cfbvw88hig1v47by7hp"; + procMacro = true; + authors = [ + "The wasm-bindgen Developers" + ]; + dependencies = [ + { + name = "quote"; + packageId = "quote"; + } + { + name = "wasm-bindgen-macro-support"; + packageId = "wasm-bindgen-macro-support"; + } + ]; + features = { + "spans" = [ "wasm-bindgen-macro-support/spans" ]; + "strict-macro" = [ "wasm-bindgen-macro-support/strict-macro" ]; + }; + resolvedDefaultFeatures = [ "spans" ]; + }; + "wasm-bindgen-macro-support" = rec { + crateName = "wasm-bindgen-macro-support"; + version = "0.2.75"; + edition = "2018"; + sha256 = "17sqziz87sikg4a0w8mxrr440fm132pcc9cwclmal0rz77fmf9kc"; + authors = [ + "The wasm-bindgen Developers" + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn"; + features = [ "visit" "full" ]; + } + { + name = "wasm-bindgen-backend"; + packageId = "wasm-bindgen-backend"; + } + { + name = "wasm-bindgen-shared"; + packageId = "wasm-bindgen-shared"; + } + ]; + features = { + "extra-traits" = [ "syn/extra-traits" ]; + "spans" = [ "wasm-bindgen-backend/spans" ]; + }; + resolvedDefaultFeatures = [ "spans" ]; + }; + "wasm-bindgen-shared" = rec { + crateName = "wasm-bindgen-shared"; + version = "0.2.75"; + edition = "2018"; + sha256 = "1hmwidww6s80kgr3k9jr389s8jzsg8frdpjfbza655ih79s4l31f"; + authors = [ + "The wasm-bindgen Developers" + ]; + + }; + "web-sys" = rec { + crateName = "web-sys"; + version = "0.3.52"; + edition = "2018"; + sha256 = "15i6gpfv9smjq9vzca2n39gh91a66jhx8wn7g289gja2v210miq1"; + authors = [ + "The wasm-bindgen Developers" + ]; + dependencies = [ + { + name = "js-sys"; + packageId = "js-sys"; + } + { + name = "wasm-bindgen"; + packageId = "wasm-bindgen"; + } + ]; + features = { + "AbortSignal" = [ "EventTarget" ]; + "AnalyserNode" = [ "AudioNode" "EventTarget" ]; + "Animation" = [ "EventTarget" ]; + "AnimationEvent" = [ "Event" ]; + "AnimationPlaybackEvent" = [ "Event" ]; + "Attr" = [ "EventTarget" "Node" ]; + "AudioBufferSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ]; + "AudioContext" = [ "BaseAudioContext" "EventTarget" ]; + "AudioDestinationNode" = [ "AudioNode" "EventTarget" ]; + "AudioNode" = [ "EventTarget" ]; + "AudioProcessingEvent" = [ "Event" ]; + "AudioScheduledSourceNode" = [ "AudioNode" "EventTarget" ]; + "AudioStreamTrack" = [ "EventTarget" "MediaStreamTrack" ]; + "AudioTrackList" = [ "EventTarget" ]; + "AudioWorklet" = [ "Worklet" ]; + "AudioWorkletGlobalScope" = [ "WorkletGlobalScope" ]; + "AudioWorkletNode" = [ "AudioNode" "EventTarget" ]; + "AuthenticatorAssertionResponse" = [ "AuthenticatorResponse" ]; + "AuthenticatorAttestationResponse" = [ "AuthenticatorResponse" ]; + "BaseAudioContext" = [ "EventTarget" ]; + "BatteryManager" = [ "EventTarget" ]; + "BeforeUnloadEvent" = [ "Event" ]; + "BiquadFilterNode" = [ "AudioNode" "EventTarget" ]; + "BlobEvent" = [ "Event" ]; + "Bluetooth" = [ "EventTarget" ]; + "BluetoothAdvertisingEvent" = [ "Event" ]; + "BluetoothDevice" = [ "EventTarget" ]; + "BluetoothPermissionResult" = [ "EventTarget" "PermissionStatus" ]; + "BluetoothRemoteGattCharacteristic" = [ "EventTarget" ]; + "BluetoothRemoteGattService" = [ "EventTarget" ]; + "BroadcastChannel" = [ "EventTarget" ]; + "CanvasCaptureMediaStream" = [ "EventTarget" "MediaStream" ]; + "CdataSection" = [ "CharacterData" "EventTarget" "Node" "Text" ]; + "ChannelMergerNode" = [ "AudioNode" "EventTarget" ]; + "ChannelSplitterNode" = [ "AudioNode" "EventTarget" ]; + "CharacterData" = [ "EventTarget" "Node" ]; + "ChromeWorker" = [ "EventTarget" "Worker" ]; + "Clipboard" = [ "EventTarget" ]; + "ClipboardEvent" = [ "Event" ]; + "CloseEvent" = [ "Event" ]; + "Comment" = [ "CharacterData" "EventTarget" "Node" ]; + "CompositionEvent" = [ "Event" "UiEvent" ]; + "ConstantSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ]; + "ConvolverNode" = [ "AudioNode" "EventTarget" ]; + "CssAnimation" = [ "Animation" "EventTarget" ]; + "CssConditionRule" = [ "CssGroupingRule" "CssRule" ]; + "CssCounterStyleRule" = [ "CssRule" ]; + "CssFontFaceRule" = [ "CssRule" ]; + "CssFontFeatureValuesRule" = [ "CssRule" ]; + "CssGroupingRule" = [ "CssRule" ]; + "CssImportRule" = [ "CssRule" ]; + "CssKeyframeRule" = [ "CssRule" ]; + "CssKeyframesRule" = [ "CssRule" ]; + "CssMediaRule" = [ "CssConditionRule" "CssGroupingRule" "CssRule" ]; + "CssNamespaceRule" = [ "CssRule" ]; + "CssPageRule" = [ "CssRule" ]; + "CssStyleRule" = [ "CssRule" ]; + "CssStyleSheet" = [ "StyleSheet" ]; + "CssSupportsRule" = [ "CssConditionRule" "CssGroupingRule" "CssRule" ]; + "CssTransition" = [ "Animation" "EventTarget" ]; + "CustomEvent" = [ "Event" ]; + "DedicatedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ]; + "DelayNode" = [ "AudioNode" "EventTarget" ]; + "DeviceLightEvent" = [ "Event" ]; + "DeviceMotionEvent" = [ "Event" ]; + "DeviceOrientationEvent" = [ "Event" ]; + "DeviceProximityEvent" = [ "Event" ]; + "Document" = [ "EventTarget" "Node" ]; + "DocumentFragment" = [ "EventTarget" "Node" ]; + "DocumentTimeline" = [ "AnimationTimeline" ]; + "DocumentType" = [ "EventTarget" "Node" ]; + "DomMatrix" = [ "DomMatrixReadOnly" ]; + "DomPoint" = [ "DomPointReadOnly" ]; + "DomRect" = [ "DomRectReadOnly" ]; + "DomRequest" = [ "EventTarget" ]; + "DragEvent" = [ "Event" "MouseEvent" "UiEvent" ]; + "DynamicsCompressorNode" = [ "AudioNode" "EventTarget" ]; + "Element" = [ "EventTarget" "Node" ]; + "ErrorEvent" = [ "Event" ]; + "EventSource" = [ "EventTarget" ]; + "ExtendableEvent" = [ "Event" ]; + "ExtendableMessageEvent" = [ "Event" "ExtendableEvent" ]; + "FetchEvent" = [ "Event" "ExtendableEvent" ]; + "FetchObserver" = [ "EventTarget" ]; + "File" = [ "Blob" ]; + "FileReader" = [ "EventTarget" ]; + "FileSystemDirectoryEntry" = [ "FileSystemEntry" ]; + "FileSystemFileEntry" = [ "FileSystemEntry" ]; + "FocusEvent" = [ "Event" "UiEvent" ]; + "FontFaceSet" = [ "EventTarget" ]; + "FontFaceSetLoadEvent" = [ "Event" ]; + "GainNode" = [ "AudioNode" "EventTarget" ]; + "GamepadAxisMoveEvent" = [ "Event" "GamepadEvent" ]; + "GamepadButtonEvent" = [ "Event" "GamepadEvent" ]; + "GamepadEvent" = [ "Event" ]; + "GpuDevice" = [ "EventTarget" ]; + "GpuUncapturedErrorEvent" = [ "Event" ]; + "HashChangeEvent" = [ "Event" ]; + "Hid" = [ "EventTarget" ]; + "HidConnectionEvent" = [ "Event" ]; + "HidDevice" = [ "EventTarget" ]; + "HidInputReportEvent" = [ "Event" ]; + "HtmlAnchorElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlAreaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlAudioElement" = [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ]; + "HtmlBaseElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlBodyElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlBrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlButtonElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlCanvasElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlDListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlDataElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlDataListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlDetailsElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlDialogElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlDirectoryElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlDivElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlDocument" = [ "Document" "EventTarget" "Node" ]; + "HtmlElement" = [ "Element" "EventTarget" "Node" ]; + "HtmlEmbedElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlFieldSetElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlFontElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlFormControlsCollection" = [ "HtmlCollection" ]; + "HtmlFormElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlFrameElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlFrameSetElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlHeadElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlHeadingElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlHrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlHtmlElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlIFrameElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlImageElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlInputElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlLabelElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlLegendElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlLiElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlLinkElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlMapElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlMediaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlMenuElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlMenuItemElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlMetaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlMeterElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlModElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlOListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlObjectElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlOptGroupElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlOptionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlOptionsCollection" = [ "HtmlCollection" ]; + "HtmlOutputElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlParagraphElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlParamElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlPictureElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlPreElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlProgressElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlQuoteElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlScriptElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlSelectElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlSlotElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlSourceElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlSpanElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlStyleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlTableCaptionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlTableCellElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlTableColElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlTableElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlTableRowElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlTableSectionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlTemplateElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlTextAreaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlTimeElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlTitleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlTrackElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlUListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlUnknownElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlVideoElement" = [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ]; + "IdbCursorWithValue" = [ "IdbCursor" ]; + "IdbDatabase" = [ "EventTarget" ]; + "IdbFileHandle" = [ "EventTarget" ]; + "IdbFileRequest" = [ "DomRequest" "EventTarget" ]; + "IdbLocaleAwareKeyRange" = [ "IdbKeyRange" ]; + "IdbMutableFile" = [ "EventTarget" ]; + "IdbOpenDbRequest" = [ "EventTarget" "IdbRequest" ]; + "IdbRequest" = [ "EventTarget" ]; + "IdbTransaction" = [ "EventTarget" ]; + "IdbVersionChangeEvent" = [ "Event" ]; + "IirFilterNode" = [ "AudioNode" "EventTarget" ]; + "ImageCaptureErrorEvent" = [ "Event" ]; + "InputEvent" = [ "Event" "UiEvent" ]; + "KeyboardEvent" = [ "Event" "UiEvent" ]; + "KeyframeEffect" = [ "AnimationEffect" ]; + "LocalMediaStream" = [ "EventTarget" "MediaStream" ]; + "MediaDevices" = [ "EventTarget" ]; + "MediaElementAudioSourceNode" = [ "AudioNode" "EventTarget" ]; + "MediaEncryptedEvent" = [ "Event" ]; + "MediaKeyError" = [ "Event" ]; + "MediaKeyMessageEvent" = [ "Event" ]; + "MediaKeySession" = [ "EventTarget" ]; + "MediaQueryList" = [ "EventTarget" ]; + "MediaQueryListEvent" = [ "Event" ]; + "MediaRecorder" = [ "EventTarget" ]; + "MediaRecorderErrorEvent" = [ "Event" ]; + "MediaSource" = [ "EventTarget" ]; + "MediaStream" = [ "EventTarget" ]; + "MediaStreamAudioDestinationNode" = [ "AudioNode" "EventTarget" ]; + "MediaStreamAudioSourceNode" = [ "AudioNode" "EventTarget" ]; + "MediaStreamEvent" = [ "Event" ]; + "MediaStreamTrack" = [ "EventTarget" ]; + "MediaStreamTrackEvent" = [ "Event" ]; + "MessageEvent" = [ "Event" ]; + "MessagePort" = [ "EventTarget" ]; + "MidiAccess" = [ "EventTarget" ]; + "MidiConnectionEvent" = [ "Event" ]; + "MidiInput" = [ "EventTarget" "MidiPort" ]; + "MidiMessageEvent" = [ "Event" ]; + "MidiOutput" = [ "EventTarget" "MidiPort" ]; + "MidiPort" = [ "EventTarget" ]; + "MouseEvent" = [ "Event" "UiEvent" ]; + "MouseScrollEvent" = [ "Event" "MouseEvent" "UiEvent" ]; + "MutationEvent" = [ "Event" ]; + "NetworkInformation" = [ "EventTarget" ]; + "Node" = [ "EventTarget" ]; + "Notification" = [ "EventTarget" ]; + "NotificationEvent" = [ "Event" "ExtendableEvent" ]; + "OfflineAudioCompletionEvent" = [ "Event" ]; + "OfflineAudioContext" = [ "BaseAudioContext" "EventTarget" ]; + "OfflineResourceList" = [ "EventTarget" ]; + "OffscreenCanvas" = [ "EventTarget" ]; + "OscillatorNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ]; + "PageTransitionEvent" = [ "Event" ]; + "PaintWorkletGlobalScope" = [ "WorkletGlobalScope" ]; + "PannerNode" = [ "AudioNode" "EventTarget" ]; + "PaymentMethodChangeEvent" = [ "Event" "PaymentRequestUpdateEvent" ]; + "PaymentRequestUpdateEvent" = [ "Event" ]; + "Performance" = [ "EventTarget" ]; + "PerformanceMark" = [ "PerformanceEntry" ]; + "PerformanceMeasure" = [ "PerformanceEntry" ]; + "PerformanceNavigationTiming" = [ "PerformanceEntry" "PerformanceResourceTiming" ]; + "PerformanceResourceTiming" = [ "PerformanceEntry" ]; + "PermissionStatus" = [ "EventTarget" ]; + "PointerEvent" = [ "Event" "MouseEvent" "UiEvent" ]; + "PopStateEvent" = [ "Event" ]; + "PopupBlockedEvent" = [ "Event" ]; + "PresentationAvailability" = [ "EventTarget" ]; + "PresentationConnection" = [ "EventTarget" ]; + "PresentationConnectionAvailableEvent" = [ "Event" ]; + "PresentationConnectionCloseEvent" = [ "Event" ]; + "PresentationConnectionList" = [ "EventTarget" ]; + "PresentationRequest" = [ "EventTarget" ]; + "ProcessingInstruction" = [ "CharacterData" "EventTarget" "Node" ]; + "ProgressEvent" = [ "Event" ]; + "PromiseRejectionEvent" = [ "Event" ]; + "PublicKeyCredential" = [ "Credential" ]; + "PushEvent" = [ "Event" "ExtendableEvent" ]; + "RadioNodeList" = [ "NodeList" ]; + "RtcDataChannel" = [ "EventTarget" ]; + "RtcDataChannelEvent" = [ "Event" ]; + "RtcPeerConnection" = [ "EventTarget" ]; + "RtcPeerConnectionIceEvent" = [ "Event" ]; + "RtcTrackEvent" = [ "Event" ]; + "RtcdtmfSender" = [ "EventTarget" ]; + "RtcdtmfToneChangeEvent" = [ "Event" ]; + "Screen" = [ "EventTarget" ]; + "ScreenOrientation" = [ "EventTarget" ]; + "ScriptProcessorNode" = [ "AudioNode" "EventTarget" ]; + "ScrollAreaEvent" = [ "Event" "UiEvent" ]; + "SecurityPolicyViolationEvent" = [ "Event" ]; + "ServiceWorker" = [ "EventTarget" ]; + "ServiceWorkerContainer" = [ "EventTarget" ]; + "ServiceWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ]; + "ServiceWorkerRegistration" = [ "EventTarget" ]; + "ShadowRoot" = [ "DocumentFragment" "EventTarget" "Node" ]; + "SharedWorker" = [ "EventTarget" ]; + "SharedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ]; + "SourceBuffer" = [ "EventTarget" ]; + "SourceBufferList" = [ "EventTarget" ]; + "SpeechRecognition" = [ "EventTarget" ]; + "SpeechRecognitionError" = [ "Event" ]; + "SpeechRecognitionEvent" = [ "Event" ]; + "SpeechSynthesis" = [ "EventTarget" ]; + "SpeechSynthesisErrorEvent" = [ "Event" "SpeechSynthesisEvent" ]; + "SpeechSynthesisEvent" = [ "Event" ]; + "SpeechSynthesisUtterance" = [ "EventTarget" ]; + "StereoPannerNode" = [ "AudioNode" "EventTarget" ]; + "StorageEvent" = [ "Event" ]; + "SvgAnimateElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ]; + "SvgAnimateMotionElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ]; + "SvgAnimateTransformElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ]; + "SvgAnimationElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgCircleElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ]; + "SvgClipPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgComponentTransferFunctionElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgDefsElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; + "SvgDescElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgElement" = [ "Element" "EventTarget" "Node" ]; + "SvgEllipseElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ]; + "SvgFilterElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgForeignObjectElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; + "SvgGeometryElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; + "SvgGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgGraphicsElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgImageElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; + "SvgLineElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ]; + "SvgLinearGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGradientElement" ]; + "SvgMarkerElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgMaskElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgMetadataElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ]; + "SvgPathSegArcAbs" = [ "SvgPathSeg" ]; + "SvgPathSegArcRel" = [ "SvgPathSeg" ]; + "SvgPathSegClosePath" = [ "SvgPathSeg" ]; + "SvgPathSegCurvetoCubicAbs" = [ "SvgPathSeg" ]; + "SvgPathSegCurvetoCubicRel" = [ "SvgPathSeg" ]; + "SvgPathSegCurvetoCubicSmoothAbs" = [ "SvgPathSeg" ]; + "SvgPathSegCurvetoCubicSmoothRel" = [ "SvgPathSeg" ]; + "SvgPathSegCurvetoQuadraticAbs" = [ "SvgPathSeg" ]; + "SvgPathSegCurvetoQuadraticRel" = [ "SvgPathSeg" ]; + "SvgPathSegCurvetoQuadraticSmoothAbs" = [ "SvgPathSeg" ]; + "SvgPathSegCurvetoQuadraticSmoothRel" = [ "SvgPathSeg" ]; + "SvgPathSegLinetoAbs" = [ "SvgPathSeg" ]; + "SvgPathSegLinetoHorizontalAbs" = [ "SvgPathSeg" ]; + "SvgPathSegLinetoHorizontalRel" = [ "SvgPathSeg" ]; + "SvgPathSegLinetoRel" = [ "SvgPathSeg" ]; + "SvgPathSegLinetoVerticalAbs" = [ "SvgPathSeg" ]; + "SvgPathSegLinetoVerticalRel" = [ "SvgPathSeg" ]; + "SvgPathSegMovetoAbs" = [ "SvgPathSeg" ]; + "SvgPathSegMovetoRel" = [ "SvgPathSeg" ]; + "SvgPatternElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgPolygonElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ]; + "SvgPolylineElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ]; + "SvgRadialGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGradientElement" ]; + "SvgRectElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ]; + "SvgScriptElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgSetElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ]; + "SvgStopElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgStyleElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgSwitchElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; + "SvgSymbolElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgTextContentElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; + "SvgTextElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" "SvgTextPositioningElement" ]; + "SvgTextPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" ]; + "SvgTextPositioningElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" ]; + "SvgTitleElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgUseElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; + "SvgViewElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgaElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; + "SvgfeBlendElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeColorMatrixElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeComponentTransferElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeCompositeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeConvolveMatrixElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeDiffuseLightingElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeDisplacementMapElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeDistantLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeDropShadowElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeFloodElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeFuncAElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ]; + "SvgfeFuncBElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ]; + "SvgfeFuncGElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ]; + "SvgfeFuncRElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ]; + "SvgfeGaussianBlurElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeImageElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeMergeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeMergeNodeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeMorphologyElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeOffsetElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfePointLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeSpecularLightingElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeSpotLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeTileElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgfeTurbulenceElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvggElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; + "SvgmPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; + "SvgsvgElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; + "SvgtSpanElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" "SvgTextPositioningElement" ]; + "TcpServerSocket" = [ "EventTarget" ]; + "TcpServerSocketEvent" = [ "Event" ]; + "TcpSocket" = [ "EventTarget" ]; + "TcpSocketErrorEvent" = [ "Event" ]; + "TcpSocketEvent" = [ "Event" ]; + "Text" = [ "CharacterData" "EventTarget" "Node" ]; + "TextTrack" = [ "EventTarget" ]; + "TextTrackCue" = [ "EventTarget" ]; + "TextTrackList" = [ "EventTarget" ]; + "TimeEvent" = [ "Event" ]; + "TouchEvent" = [ "Event" "UiEvent" ]; + "TrackEvent" = [ "Event" ]; + "TransitionEvent" = [ "Event" ]; + "UiEvent" = [ "Event" ]; + "Usb" = [ "EventTarget" ]; + "UsbConnectionEvent" = [ "Event" ]; + "UsbPermissionResult" = [ "EventTarget" "PermissionStatus" ]; + "UserProximityEvent" = [ "Event" ]; + "ValueEvent" = [ "Event" ]; + "VideoStreamTrack" = [ "EventTarget" "MediaStreamTrack" ]; + "VideoTrackList" = [ "EventTarget" ]; + "VrDisplay" = [ "EventTarget" ]; + "VttCue" = [ "EventTarget" "TextTrackCue" ]; + "WakeLockSentinel" = [ "EventTarget" ]; + "WaveShaperNode" = [ "AudioNode" "EventTarget" ]; + "WebGlContextEvent" = [ "Event" ]; + "WebKitCssMatrix" = [ "DomMatrix" "DomMatrixReadOnly" ]; + "WebSocket" = [ "EventTarget" ]; + "WheelEvent" = [ "Event" "MouseEvent" "UiEvent" ]; + "Window" = [ "EventTarget" ]; + "WindowClient" = [ "Client" ]; + "Worker" = [ "EventTarget" ]; + "WorkerDebuggerGlobalScope" = [ "EventTarget" ]; + "WorkerGlobalScope" = [ "EventTarget" ]; + "XmlDocument" = [ "Document" "EventTarget" "Node" ]; + "XmlHttpRequest" = [ "EventTarget" "XmlHttpRequestEventTarget" ]; + "XmlHttpRequestEventTarget" = [ "EventTarget" ]; + "XmlHttpRequestUpload" = [ "EventTarget" "XmlHttpRequestEventTarget" ]; + "Xr" = [ "EventTarget" ]; + "XrBoundedReferenceSpace" = [ "EventTarget" "XrReferenceSpace" "XrSpace" ]; + "XrInputSourceEvent" = [ "Event" ]; + "XrInputSourcesChangeEvent" = [ "Event" ]; + "XrReferenceSpace" = [ "EventTarget" "XrSpace" ]; + "XrReferenceSpaceEvent" = [ "Event" ]; + "XrSession" = [ "EventTarget" ]; + "XrSessionEvent" = [ "Event" ]; + "XrSpace" = [ "EventTarget" ]; + "XrViewerPose" = [ "XrPose" ]; + }; + resolvedDefaultFeatures = [ "Blob" "BlobPropertyBag" "Crypto" "Event" "EventTarget" "FormData" "Headers" "MessageEvent" "Request" "RequestCredentials" "RequestInit" "RequestMode" "Response" "ServiceWorkerGlobalScope" "Window" "Worker" "WorkerGlobalScope" ]; + }; + "webpki" = rec { + crateName = "webpki"; + version = "0.21.4"; + edition = "2018"; + sha256 = "1sm4i8c5bw3bdhi7mjk0wpvwx55hvsmyn0k2lpa4cb161038rqxq"; + libPath = "src/webpki.rs"; + authors = [ + "Brian Smith " + ]; + dependencies = [ + { + name = "ring"; + packageId = "ring"; + usesDefaultFeatures = false; + features = [ "alloc" ]; + } + { + name = "untrusted"; + packageId = "untrusted"; + } + ]; + features = { + "default" = [ "std" "trust_anchor_util" ]; + "trust_anchor_util" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" "trust_anchor_util" ]; + }; + "webpki-roots" = rec { + crateName = "webpki-roots"; + version = "0.21.1"; + edition = "2018"; + crateBin = []; + sha256 = "0h49lkr7hrxpyr0xg1nph4m3v1l6rhg8ax9n8msvfwz48hsibgma"; + authors = [ + "Joseph Birr-Pixton " + ]; + dependencies = [ + { + name = "webpki"; + packageId = "webpki"; + } + ]; + + }; + "winapi" = rec { + crateName = "winapi"; + version = "0.3.9"; + edition = "2015"; + sha256 = "06gl025x418lchw1wxj64ycr7gha83m44cjr5sarhynd9xkrm0sw"; + authors = [ + "Peter Atashian " + ]; + dependencies = [ + { + name = "winapi-i686-pc-windows-gnu"; + packageId = "winapi-i686-pc-windows-gnu"; + target = { target, features }: (stdenv.hostPlatform.config == "i686-pc-windows-gnu"); + } + { + name = "winapi-x86_64-pc-windows-gnu"; + packageId = "winapi-x86_64-pc-windows-gnu"; + target = { target, features }: (stdenv.hostPlatform.config == "x86_64-pc-windows-gnu"); + } + ]; + features = { + "debug" = [ "impl-debug" ]; + }; + resolvedDefaultFeatures = [ "cfg" "consoleapi" "errhandlingapi" "evntrace" "fileapi" "handleapi" "impl-debug" "impl-default" "in6addr" "inaddr" "ioapiset" "knownfolders" "memoryapi" "minwinbase" "minwindef" "mstcpip" "mswsock" "namedpipeapi" "ntdef" "ntsecapi" "ntstatus" "objbase" "processenv" "profileapi" "shlobj" "std" "synchapi" "sysinfoapi" "threadpoollegacyapiset" "timezoneapi" "winbase" "wincon" "windef" "winerror" "winioctl" "winnt" "winreg" "winsock2" "ws2def" "ws2ipdef" "ws2tcpip" "wtypesbase" ]; + }; + "winapi-i686-pc-windows-gnu" = rec { + crateName = "winapi-i686-pc-windows-gnu"; + version = "0.4.0"; + edition = "2015"; + sha256 = "1dmpa6mvcvzz16zg6d5vrfy4bxgg541wxrcip7cnshi06v38ffxc"; + authors = [ + "Peter Atashian " + ]; + + }; + "winapi-util" = rec { + crateName = "winapi-util"; + version = "0.1.5"; + edition = "2018"; + sha256 = "0y71bp7f6d536czj40dhqk0d55wfbbwqfp2ymqf1an5ibgl6rv3h"; + authors = [ + "Andrew Gallant " + ]; + dependencies = [ + { + name = "winapi"; + packageId = "winapi"; + 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 " + ]; + + }; + "winreg" = rec { + crateName = "winreg"; + version = "0.7.0"; + edition = "2015"; + sha256 = "0sdxcyvda4v1v6a0k1j2v1400z3ng323k9a56gxvkq51x21dn801"; + authors = [ + "Igor Shaula " + ]; + dependencies = [ + { + name = "winapi"; + packageId = "winapi"; + features = [ "impl-default" "impl-debug" "minwindef" "minwinbase" "timezoneapi" "winerror" "winnt" "winreg" "handleapi" ]; + } + ]; + features = { + "serialization-serde" = [ "transactions" "serde" ]; + "transactions" = [ "winapi/ktmw32" ]; + }; + }; + "yansi" = rec { + crateName = "yansi"; + version = "0.5.0"; + edition = "2015"; + sha256 = "0wdx8syhc61lphmgw5cw1vq73isi4szjqriz1k07z19r3r59ziwz"; + authors = [ + "Sergio Benitez " + ]; + + }; + }; + + # +# crate2nix/default.nix (excerpt start) +# + + /* Target (platform) data for conditional dependencies. + This corresponds roughly to what buildRustCrate is setting. + */ + defaultTarget = { + unix = true; + windows = false; + fuchsia = true; + test = false; + + # This doesn't appear to be officially documented anywhere yet. + # See https://github.com/rust-lang-nursery/rust-forge/issues/101. + os = + if stdenv.hostPlatform.isDarwin + then "macos" + else stdenv.hostPlatform.parsed.kernel.name; + arch = stdenv.hostPlatform.parsed.cpu.name; + family = "unix"; + env = "gnu"; + endian = + if stdenv.hostPlatform.parsed.cpu.significantByte.name == "littleEndian" + then "little" else "big"; + pointer_width = toString stdenv.hostPlatform.parsed.cpu.bits; + vendor = stdenv.hostPlatform.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 + , target ? defaultTarget + } @ args: + assert (builtins.isAttrs crateConfigs); + assert (builtins.isString packageId); + assert (builtins.isList features); + assert (builtins.isAttrs target); + assert (builtins.isBool runTests); + let + rootPackageId = packageId; + mergedFeatures = mergePackageFeatures + ( + args // { + inherit rootPackageId; + target = target // { 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; + 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 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 target; + buildByPackageId = depPackageId: + self.build.crates.${depPackageId}; + dependencies = crateConfig.buildDependencies or [ ]; + }; + filterEnabledDependenciesForThis = dependencies: filterEnabledDependencies { + inherit dependencies features target; + }; + dependenciesWithRenames = + lib.filter (d: d ? "rename") + ( + filterEnabledDependenciesForThis + ( + (crateConfig.buildDependencies or [ ]) + ++ (crateConfig.dependencies or [ ]) + ++ devDependencies + ) + ); + # 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 = 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 ? defaultTarget }: + 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 = { name, rename ? null, ... }: feature: + let + prefix = "${name}/"; + len = builtins.stringLength prefix; + startsWithPrefix = builtins.substring 0 len feature == prefix; + in + (rename == null && feature == name) + || (rename != null && rename == feature) + || 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.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) + # + }; +} + diff --git a/crate-hashes.json b/crate-hashes.json new file mode 100644 index 0000000..0281732 --- /dev/null +++ b/crate-hashes.json @@ -0,0 +1,3 @@ +{ + "typed-html 0.2.2 (git+https://github.com/bodil/typed-html?rev=d95ce1a2930f2385d4f3765d061dbeff3503107f#d95ce1a2930f2385d4f3765d061dbeff3503107f)": "0z1zprngz92yscv07vyqd0kkd8kkpr20fs7ks9c7yg9ygn8ns882" +} \ No newline at end of file diff --git a/default.nix b/default.nix index f5bfddc..0aa331b 100644 --- a/default.nix +++ b/default.nix @@ -1,12 +1,3 @@ -(import - (let - lock = builtins.fromJSON (builtins.readFile ./flake.lock); - in - fetchTarball { - url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz"; - sha256 = lock.nodes.flake-compat.locked.narHash; - } - ) - { - src = ./.; - }).defaultNix \ No newline at end of file +{ pkgs }: +let workspace = import ./Cargo.nix { inherit pkgs; }; +in workspace.rootCrate.build.override { runTests = true; } diff --git a/flake.lock b/flake.lock index 4756933..023f3ff 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "crate2nix": { "flake": false, "locked": { - "lastModified": 1627923438, - "narHash": "sha256-/O/FDJynVXOdFhSXQGU2uH/FQF3MS93WMyeY+9fcRaU=", + "lastModified": 1627987096, + "narHash": "sha256-4UZmV651pao101MKoUVh3fHX8OqyoQss5mumOxbrBGk=", "owner": "kolloch", "repo": "crate2nix", - "rev": "29460b5c411defa5e8e0851fe7ecbca0f0fa41d3", + "rev": "0ec72d0147d51b26943d622088a13ca273d25469", "type": "github" }, "original": { @@ -49,11 +49,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1627978428, - "narHash": "sha256-813SF+K9wEwHVTOhgVpaC3CSZWcjap7Pv3bWppV0U44=", + "lastModified": 1628027051, + "narHash": "sha256-ZbtoEzVT2NV2J2tFmto2PcgdZmsdSyV3rVZBweXkbWk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b3ca5f904aa0f3341413f14e3bd8303a6acd39de", + "rev": "1ab9b0e31da0a6de40867d457b0244c2c895b1dc", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 1e53b5e..757dfa8 100644 --- a/flake.nix +++ b/flake.nix @@ -25,13 +25,16 @@ }) ]; }; - inherit (import "${crate2nix}/tools.nix" { inherit pkgs; }) generatedCargoNix; - project = pkgs.callPackage - (generatedCargoNix { inherit name; src = ./.; }) - { defaultCrateOverrides = pkgs.defaultCrateOverrides; }; - buildInputs = with pkgs; []; + project = import ./Cargo.nix { inherit pkgs; }; + static = pkgs.callPackage ./static.nix {}; in rec { - packages.${name} = project.rootCrate.build; + packages.${name} = pkgs.symlinkJoin { + inherit name; + paths = [ + project.rootCrate.build + static + ]; + }; defaultPackage = packages.${name}; apps.${name} = utils.lib.mkApp { inherit name; diff --git a/src/main.rs b/src/main.rs index ba97d74..e432371 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,3 @@ -#![doc = include_str!("../README.md")] -#![recursion_limit = "512"] - #[macro_use] extern crate serde; #[macro_use] @@ -18,6 +15,8 @@ mod render; mod routes; mod views; +use std::path::PathBuf; + use clap::Clap; use rocket::fs::{FileServer, relative}; @@ -27,6 +26,9 @@ use crate::api::Api; struct Opt { #[clap(short = 'v', long = "verbose", parse(from_occurrences))] verbose: usize, + + #[clap(short = 'f', long = "static")] + static_file_path: Option, } #[get("/favicon.ico")] @@ -41,10 +43,15 @@ fn rocket() -> _ { // .init() // .unwrap(); + let static_file_path = match opt.static_file_path { + Some(path) => path, + None => PathBuf::from(relative!("/static")), + }; + use routes::timeline; let api = Api::new().unwrap(); rocket::build() - .mount("/static", FileServer::from(relative!("/static"))) + .mount("/static", FileServer::from(static_file_path)) .mount( "/", routes![ diff --git a/static.nix b/static.nix new file mode 100644 index 0000000..3b65c63 --- /dev/null +++ b/static.nix @@ -0,0 +1,17 @@ +{ stdenv, sassc }: + +stdenv.mkDerivation { + name = "shitter-static"; + buildInputs = [ sassc ]; + src = ./.; + buildPhase = '' + pwd + ls -l + ls -l sass + ${sassc}/bin/sassc -Isass/include sass/index.scss static/css/style.css + ''; + installPhase = '' + mkdir -p $out + cp -r static $out + ''; +}