# This file was @generated by crate2nix 0.9.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 "`buildRustCrate` is deprecated, 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. # # Refer your crate build derivation by name here. # You can override the features with # workspaceMembers."${crateName}".build.override { features = [ "default" "feature1" ... ]; }. workspaceMembers = { "automerge" = rec { packageId = "automerge"; build = internal.buildRustCrateWithFeatures { packageId = "automerge"; }; # Debug support which might change between releases. # File a bug if you depend on any for non-debug work! debug = internal.debugCrate { inherit packageId; }; }; "automerge-backend" = rec { packageId = "automerge-backend"; build = internal.buildRustCrateWithFeatures { packageId = "automerge-backend"; }; # Debug support which might change between releases. # File a bug if you depend on any for non-debug work! debug = internal.debugCrate { inherit packageId; }; }; "automerge-backend-wasm" = rec { packageId = "automerge-backend-wasm"; build = internal.buildRustCrateWithFeatures { packageId = "automerge-backend-wasm"; }; # Debug support which might change between releases. # File a bug if you depend on any for non-debug work! debug = internal.debugCrate { inherit packageId; }; }; "automerge-c" = rec { packageId = "automerge-c"; build = internal.buildRustCrateWithFeatures { packageId = "automerge-c"; }; # Debug support which might change between releases. # File a bug if you depend on any for non-debug work! debug = internal.debugCrate { inherit packageId; }; }; "automerge-cli" = rec { packageId = "automerge-cli"; build = internal.buildRustCrateWithFeatures { packageId = "automerge-cli"; }; # Debug support which might change between releases. # File a bug if you depend on any for non-debug work! debug = internal.debugCrate { inherit packageId; }; }; "automerge-frontend" = rec { packageId = "automerge-frontend"; build = internal.buildRustCrateWithFeatures { packageId = "automerge-frontend"; }; # Debug support which might change between releases. # File a bug if you depend on any for non-debug work! debug = internal.debugCrate { inherit packageId; }; }; "automerge-protocol" = rec { packageId = "automerge-protocol"; build = internal.buildRustCrateWithFeatures { packageId = "automerge-protocol"; }; # 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.15"; edition = "2015"; sha256 = "1rb8gzhljl8r87dpf2n5pnqnkl694casgns4ma0sqzd4zazzw13l"; libName = "aho_corasick"; authors = [ "Andrew Gallant " ]; dependencies = [ { name = "memchr"; packageId = "memchr"; usesDefaultFeatures = false; } ]; features = { "default" = [ "std" ]; "std" = [ "memchr/use_std" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; "ansi_term 0.11.0" = rec { crateName = "ansi_term"; version = "0.11.0"; edition = "2015"; sha256 = "16wpvrghvd0353584i1idnsgm0r3vchg8fyrm0x8ayv1rgvbljgf"; authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) " "Josh Triplett " ]; dependencies = [ { name = "winapi"; packageId = "winapi"; target = { target, features }: (target."os" == "windows"); features = [ "errhandlingapi" "consoleapi" "processenv" ]; } ]; }; "ansi_term 0.12.1" = 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" ]; }; }; "anyhow" = rec { crateName = "anyhow"; version = "1.0.40"; edition = "2018"; sha256 = "0fq6qxlzp3bwrjbs3wp4i470k8vsvlkpx3q2wpl79gawvf9cvci8"; authors = [ "David Tolnay " ]; features = { "default" = [ "std" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; "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" = rec { crateName = "autocfg"; version = "1.0.1"; edition = "2015"; sha256 = "0jj6i9zn4gjl03kjvziqdji6rwx8ykz8zk2ngpc331z2g3fk3c6d"; authors = [ "Josh Stone " ]; }; "automerge" = rec { crateName = "automerge"; version = "0.0.2"; edition = "2018"; src = lib.cleanSourceWith { filter = sourceFilter; src = ./automerge; }; authors = [ "Alex Good " ]; dependencies = [ { name = "automerge-backend"; packageId = "automerge-backend"; } { name = "automerge-frontend"; packageId = "automerge-frontend"; } { name = "automerge-protocol"; packageId = "automerge-protocol"; } { name = "serde"; packageId = "serde"; features = [ "derive" ]; } { name = "serde_json"; packageId = "serde_json"; } { name = "uuid"; packageId = "uuid"; features = [ "v4" ]; } ]; devDependencies = [ { name = "criterion"; packageId = "criterion"; } { name = "env_logger"; packageId = "env_logger"; } { name = "hex"; packageId = "hex"; } { name = "pretty_assertions"; packageId = "pretty_assertions"; } { name = "rand"; packageId = "rand 0.8.3"; } { name = "test-env-log"; packageId = "test-env-log"; usesDefaultFeatures = false; features = [ "trace" ]; } { name = "tracing"; packageId = "tracing"; } { name = "tracing-subscriber"; packageId = "tracing-subscriber"; features = [ "chrono" "env-filter" "fmt" ]; } { name = "unicode-segmentation"; packageId = "unicode-segmentation"; } ]; }; "automerge-backend" = rec { crateName = "automerge-backend"; version = "0.0.1"; edition = "2018"; src = lib.cleanSourceWith { filter = sourceFilter; src = ./automerge-backend; }; authors = [ "Alex Good " ]; dependencies = [ { name = "automerge-protocol"; packageId = "automerge-protocol"; } { name = "flate2"; packageId = "flate2"; } { name = "fxhash"; packageId = "fxhash"; } { name = "hex"; packageId = "hex"; } { name = "itertools"; packageId = "itertools 0.9.0"; } { name = "js-sys"; packageId = "js-sys"; } { name = "leb128"; packageId = "leb128"; } { name = "maplit"; packageId = "maplit"; } { name = "rand"; packageId = "rand 0.7.3"; features = [ "small_rng" ]; } { name = "serde"; packageId = "serde"; features = [ "derive" ]; } { name = "serde_json"; packageId = "serde_json"; } { name = "sha2"; packageId = "sha2"; } { name = "thiserror"; packageId = "thiserror"; } { name = "tracing"; packageId = "tracing"; features = [ "log" ]; } { name = "wasm-bindgen"; packageId = "wasm-bindgen"; } { name = "web-sys"; packageId = "web-sys"; features = [ "console" ]; } ]; devDependencies = [ { name = "env_logger"; packageId = "env_logger"; } { name = "test-env-log"; packageId = "test-env-log"; } { name = "tracing-subscriber"; packageId = "tracing-subscriber"; features = [ "chrono" "env-filter" "fmt" ]; } ]; }; "automerge-backend-wasm" = rec { crateName = "automerge-backend-wasm"; version = "0.1.0"; edition = "2018"; src = lib.cleanSourceWith { filter = sourceFilter; src = ./automerge-backend-wasm; };type = [ "cdylib" "rlib" ]; authors = [ "Alex Good " "Orion Henry " "Martin Kleppmann" ]; dependencies = [ { name = "automerge-backend"; packageId = "automerge-backend"; } { name = "automerge-protocol"; packageId = "automerge-protocol"; } { name = "console_error_panic_hook"; packageId = "console_error_panic_hook"; optional = true; } { name = "getrandom"; packageId = "getrandom 0.2.2"; features = [ "js" ]; } { name = "js-sys"; packageId = "js-sys"; } { name = "serde"; packageId = "serde"; } { name = "serde-wasm-bindgen"; packageId = "serde-wasm-bindgen"; } { name = "serde_bytes"; packageId = "serde_bytes"; } { name = "serde_json"; packageId = "serde_json"; } { name = "uuid"; packageId = "uuid"; features = [ "v4" "wasm-bindgen" "serde" ]; } { name = "wasm-bindgen"; packageId = "wasm-bindgen"; features = [ "serde-serialize" ]; } { name = "web-sys"; packageId = "web-sys"; features = [ "console" ]; } ]; devDependencies = [ { name = "futures"; packageId = "futures 0.1.31"; } { name = "wasm-bindgen-futures"; packageId = "wasm-bindgen-futures 0.3.27"; } { name = "wasm-bindgen-test"; packageId = "wasm-bindgen-test"; } ]; features = { "default" = [ "console_error_panic_hook" ]; }; resolvedDefaultFeatures = [ "console_error_panic_hook" "default" ]; }; "automerge-c" = rec { crateName = "automerge-c"; version = "0.1.0"; edition = "2018"; src = lib.cleanSourceWith { filter = sourceFilter; src = ./automerge-c; };type = [ "cdylib" "staticlib" ]; authors = [ "Orion Henry " ]; dependencies = [ { name = "automerge-backend"; packageId = "automerge-backend"; } { name = "automerge-protocol"; packageId = "automerge-protocol"; } { name = "errno"; packageId = "errno"; } { name = "libc"; packageId = "libc"; } { name = "serde"; packageId = "serde"; } { name = "serde_json"; packageId = "serde_json"; } ]; buildDependencies = [ { name = "cbindgen"; packageId = "cbindgen"; } ]; }; "automerge-cli" = rec { crateName = "automerge-cli"; version = "0.1.0"; edition = "2018"; crateBin = [ { name = "automerge"; path = "src/main.rs"; } ]; src = lib.cleanSourceWith { filter = sourceFilter; src = ./automerge-cli; }; authors = [ "Alex Good " ]; dependencies = [ { name = "anyhow"; packageId = "anyhow"; } { name = "atty"; packageId = "atty"; } { name = "automerge-backend"; packageId = "automerge-backend"; } { name = "automerge-frontend"; packageId = "automerge-frontend"; } { name = "automerge-protocol"; packageId = "automerge-protocol"; } { name = "clap"; packageId = "clap 3.0.0-beta.2"; } { name = "colored_json"; packageId = "colored_json"; } { name = "combine"; packageId = "combine"; } { name = "maplit"; packageId = "maplit"; } { name = "serde_json"; packageId = "serde_json"; } { name = "thiserror"; packageId = "thiserror"; } ]; devDependencies = [ { name = "duct"; packageId = "duct"; } ]; }; "automerge-frontend" = rec { crateName = "automerge-frontend"; version = "0.1.0"; edition = "2018"; src = lib.cleanSourceWith { filter = sourceFilter; src = ./automerge-frontend; }; authors = [ "Alex Good " ]; dependencies = [ { name = "automerge-protocol"; packageId = "automerge-protocol"; } { name = "futures"; packageId = "futures 0.3.14"; } { name = "getrandom"; packageId = "getrandom 0.2.2"; target = { target, features }: ((target."arch" == "wasm32") && (target."os" == "unknown")); features = [ "js" ]; } { name = "im-rc"; packageId = "im-rc"; } { name = "maplit"; packageId = "maplit"; } { name = "serde"; packageId = "serde"; features = [ "derive" ]; } { name = "serde_json"; packageId = "serde_json"; } { name = "thiserror"; packageId = "thiserror"; } { name = "unicode-segmentation"; packageId = "unicode-segmentation"; } { name = "uuid"; packageId = "uuid"; features = [ "v4" ]; } { name = "uuid"; packageId = "uuid"; target = { target, features }: ((target."arch" == "wasm32") && (target."os" == "unknown")); features = [ "wasm-bindgen" "v4" "serde" ]; } ]; devDependencies = [ { name = "automerge-backend"; packageId = "automerge-backend"; } { name = "criterion"; packageId = "criterion"; } { name = "env_logger"; packageId = "env_logger"; } { name = "log"; packageId = "log"; } { name = "rand"; packageId = "rand 0.8.3"; } { name = "wasm-bindgen-test"; packageId = "wasm-bindgen-test"; } ]; features = { "default" = [ "std" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; "automerge-protocol" = rec { crateName = "automerge-protocol"; version = "0.1.0"; edition = "2018"; src = lib.cleanSourceWith { filter = sourceFilter; src = ./automerge-protocol; }; authors = [ "Alex Good " ]; dependencies = [ { name = "hex"; packageId = "hex"; } { name = "serde"; packageId = "serde"; features = [ "derive" ]; } { name = "thiserror"; packageId = "thiserror"; } { name = "uuid"; packageId = "uuid"; features = [ "v4" ]; } ]; devDependencies = [ { name = "maplit"; packageId = "maplit"; } { name = "proptest"; packageId = "proptest"; } { name = "serde_json"; packageId = "serde_json"; features = [ "float_roundtrip" ]; } ]; }; "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" ]; }; "bitmaps" = rec { crateName = "bitmaps"; version = "2.1.0"; edition = "2018"; sha256 = "18k4mcwxl96yvii5kcljkpb8pg5j4jj1zbsdn26nsx4r83846403"; authors = [ "Bodil Stokke " ]; dependencies = [ { name = "typenum"; packageId = "typenum"; } ]; 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"; } ]; }; "bstr" = rec { crateName = "bstr"; version = "0.2.15"; edition = "2015"; sha256 = "0gca4v6448clsssll3y787jgw542c9mw9phqdi7419g1jfnlf2x4"; authors = [ "Andrew Gallant " ]; dependencies = [ { name = "lazy_static"; packageId = "lazy_static"; optional = true; } { name = "memchr"; packageId = "memchr"; usesDefaultFeatures = false; } { name = "regex-automata"; packageId = "regex-automata"; optional = true; usesDefaultFeatures = false; } { name = "serde"; packageId = "serde"; optional = true; usesDefaultFeatures = false; } ]; features = { "default" = [ "std" "unicode" ]; "serde1" = [ "std" "serde1-nostd" "serde/std" ]; "serde1-nostd" = [ "serde" ]; "std" = [ "memchr/use_std" ]; "unicode" = [ "lazy_static" "regex-automata" ]; }; resolvedDefaultFeatures = [ "default" "lazy_static" "regex-automata" "serde" "serde1" "serde1-nostd" "std" "unicode" ]; }; "bumpalo" = rec { crateName = "bumpalo"; version = "3.6.1"; edition = "2018"; sha256 = "1gndni6ng6z1v14lq5zgm1k2y9320w4bc2ijzgyz9qwx9f56nfb3"; 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" ]; }; "cast" = rec { crateName = "cast"; version = "0.2.5"; edition = "2018"; sha256 = "0xdbmxf2wz6b263bg8fzpiv1rpa01y129fqi81349r6ppy2w6f6c"; authors = [ "Jorge Aparicio " ]; buildDependencies = [ { name = "rustc_version"; packageId = "rustc_version"; } ]; features = { "default" = [ "std" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; "cbindgen" = rec { crateName = "cbindgen"; version = "0.14.3"; edition = "2018"; crateBin = []; sha256 = "0n88s072g09sfnvsbbkfw0mgga15isj09wc6ak63brzjbmq3mq76"; authors = [ "Jeff Muizelaar " "Kartikaya Gupta " "Ryan Hunt " ]; dependencies = [ { name = "clap"; packageId = "clap 2.33.3"; optional = true; } { name = "heck"; packageId = "heck"; } { name = "log"; packageId = "log"; } { name = "proc-macro2"; packageId = "proc-macro2"; } { name = "quote"; packageId = "quote"; } { name = "serde"; packageId = "serde"; usesDefaultFeatures = false; features = [ "derive" ]; } { name = "serde_json"; packageId = "serde_json"; } { name = "syn"; packageId = "syn"; usesDefaultFeatures = false; features = [ "clone-impls" "extra-traits" "full" "parsing" "printing" ]; } { name = "tempfile"; packageId = "tempfile"; } { name = "toml"; packageId = "toml"; } ]; features = { "default" = [ "clap" ]; }; resolvedDefaultFeatures = [ "clap" "default" ]; }; "cfg-if 0.1.10" = rec { crateName = "cfg-if"; version = "0.1.10"; edition = "2018"; sha256 = "08h80ihs74jcyp24cd75wwabygbbdgl05k6p5dmq8akbr78vv1a7"; authors = [ "Alex Crichton " ]; features = { "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; }; }; "cfg-if 1.0.0" = rec { crateName = "cfg-if"; version = "1.0.0"; edition = "2018"; sha256 = "1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds"; authors = [ "Alex Crichton " ]; 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 = "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" "libc" "std" "winapi" ]; }; "clap 2.33.3" = rec { crateName = "clap"; version = "2.33.3"; edition = "2015"; sha256 = "00i065a58987k1sbzqmlz721rw521zcg08jmsh40gi3khp3qmr9p"; authors = [ "Kevin K. " ]; dependencies = [ { name = "ansi_term"; packageId = "ansi_term 0.11.0"; optional = true; target = { target, features }: (!(target."windows" or false)); } { name = "atty"; packageId = "atty"; optional = true; } { name = "bitflags"; packageId = "bitflags"; } { name = "strsim"; packageId = "strsim 0.8.0"; optional = true; } { name = "textwrap"; packageId = "textwrap 0.11.0"; } { name = "unicode-width"; packageId = "unicode-width"; } { name = "vec_map"; packageId = "vec_map"; optional = true; } ]; features = { "color" = [ "ansi_term" "atty" ]; "default" = [ "suggestions" "color" "vec_map" ]; "doc" = [ "yaml" ]; "lints" = [ "clippy" ]; "suggestions" = [ "strsim" ]; "wrap_help" = [ "term_size" "textwrap/term_size" ]; "yaml" = [ "yaml-rust" ]; }; resolvedDefaultFeatures = [ "ansi_term" "atty" "color" "default" "strsim" "suggestions" "vec_map" ]; }; "clap 3.0.0-beta.2" = 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 0.10.0"; optional = true; } { name = "termcolor"; packageId = "termcolor"; optional = true; } { name = "textwrap"; packageId = "textwrap 0.12.1"; } { 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" ]; }; "colored_json" = rec { crateName = "colored_json"; version = "2.1.0"; edition = "2018"; sha256 = "0r0sfwhwmzmfd54cr373j8x88x9ch2ky6016ghxj0vh19nsjxlqz"; authors = [ "Jens Reimann " "Harald Hoyer " ]; dependencies = [ { name = "ansi_term"; packageId = "ansi_term 0.12.1"; } { name = "atty"; packageId = "atty"; } { name = "libc"; packageId = "libc"; target = { target, features }: (target."unix" or false); } { name = "serde"; packageId = "serde"; } { name = "serde_json"; packageId = "serde_json"; } ]; }; "combine" = rec { crateName = "combine"; version = "4.5.2"; edition = "2018"; sha256 = "0zkvqp21fbhznf7sjssdiw3zgx3x3q8w10c9mmjdzkf0wjsnjhyc"; authors = [ "Markus Westerlind " ]; dependencies = [ { name = "bytes"; packageId = "bytes"; optional = true; } { name = "memchr"; packageId = "memchr"; usesDefaultFeatures = false; } ]; devDependencies = [ { name = "bytes"; packageId = "bytes"; } ]; features = { "default" = [ "std" ]; "futures-03" = [ "pin-project" "std" "futures-io-03" "futures-util-03" "pin-project-lite" ]; "pin-project" = [ "pin-project-lite" ]; "std" = [ "memchr/use_std" "bytes" ]; "tokio" = [ "tokio-dep" "futures-util-03" "pin-project-lite" ]; "tokio-02" = [ "pin-project" "std" "tokio-02-dep" "futures-util-03" "pin-project-lite" "bytes_05" ]; "tokio-03" = [ "pin-project" "std" "tokio-03-dep" "futures-util-03" "pin-project-lite" ]; }; resolvedDefaultFeatures = [ "bytes" "default" "std" ]; }; "console_error_panic_hook" = rec { crateName = "console_error_panic_hook"; version = "0.1.6"; edition = "2015"; sha256 = "04d2narcrzk9bnddz17rr2l819l82pr0h6d98s2w9q236n87dndq"; authors = [ "Nick Fitzgerald " ]; dependencies = [ { name = "cfg-if"; packageId = "cfg-if 0.1.10"; } { name = "wasm-bindgen"; packageId = "wasm-bindgen"; } ]; }; "crc32fast" = rec { crateName = "crc32fast"; version = "1.2.1"; edition = "2015"; sha256 = "06ivjlkzcxxxk7nyshc44aql4zjpmvirq46vmzrakdjax3n6y5c1"; authors = [ "Sam Rijs " "Alex Crichton " ]; dependencies = [ { name = "cfg-if"; packageId = "cfg-if 1.0.0"; } ]; features = { "default" = [ "std" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; "criterion" = rec { crateName = "criterion"; version = "0.3.4"; edition = "2018"; sha256 = "08rx789365x6l9kbsg2r9c5yg25rd3pj1giwyhpcqis56pbpwcmb"; authors = [ "Jorge Aparicio " "Brook Heisler " ]; dependencies = [ { name = "atty"; packageId = "atty"; } { name = "cast"; packageId = "cast"; } { name = "clap"; packageId = "clap 2.33.3"; usesDefaultFeatures = false; } { name = "criterion-plot"; packageId = "criterion-plot"; } { name = "csv"; packageId = "csv"; } { name = "itertools"; packageId = "itertools 0.10.0"; } { name = "lazy_static"; packageId = "lazy_static"; } { name = "num-traits"; packageId = "num-traits"; usesDefaultFeatures = false; } { name = "oorandom"; packageId = "oorandom"; } { name = "plotters"; packageId = "plotters"; usesDefaultFeatures = false; features = [ "svg_backend" "area_series" "line_series" ]; } { name = "rayon"; packageId = "rayon"; } { name = "regex"; packageId = "regex"; usesDefaultFeatures = false; features = [ "std" ]; } { name = "serde"; packageId = "serde"; } { name = "serde_cbor"; packageId = "serde_cbor"; } { name = "serde_derive"; packageId = "serde_derive"; } { name = "serde_json"; packageId = "serde_json"; } { name = "tinytemplate"; packageId = "tinytemplate"; } { name = "walkdir"; packageId = "walkdir"; } ]; features = { "async" = [ "futures" ]; "async_futures" = [ "futures/executor" "async" ]; "async_smol" = [ "smol" "async" ]; "async_std" = [ "async-std" "async" ]; "async_tokio" = [ "tokio" "async" ]; "default" = [ "cargo_bench_support" ]; }; resolvedDefaultFeatures = [ "cargo_bench_support" "default" ]; }; "criterion-plot" = rec { crateName = "criterion-plot"; version = "0.4.3"; edition = "2018"; sha256 = "17c8v5fv064181yspagkdcfd6jhs7233ba6g94bbl7v0xjnzw8p0"; authors = [ "Jorge Aparicio " "Brook Heisler " ]; dependencies = [ { name = "cast"; packageId = "cast"; } { name = "itertools"; packageId = "itertools 0.9.0"; } ]; }; "crossbeam-channel" = rec { crateName = "crossbeam-channel"; version = "0.5.1"; edition = "2018"; sha256 = "1d1dnp61g51gnmc45cb4vpjsr5n62wz22an2y3q6avgifzhjgv86"; authors = [ "The Crossbeam Project Developers" ]; dependencies = [ { name = "cfg-if"; packageId = "cfg-if 1.0.0"; } { name = "crossbeam-utils"; packageId = "crossbeam-utils"; optional = true; usesDefaultFeatures = false; } ]; features = { "default" = [ "std" ]; "std" = [ "crossbeam-utils/std" ]; }; resolvedDefaultFeatures = [ "crossbeam-utils" "default" "std" ]; }; "crossbeam-deque" = rec { crateName = "crossbeam-deque"; version = "0.8.0"; edition = "2018"; sha256 = "1ad995vzq74k7jd1pgn9zxbacyzj9ii6l0svhlb2dxzy8vxnxbwl"; authors = [ "The Crossbeam Project Developers" ]; dependencies = [ { name = "cfg-if"; packageId = "cfg-if 1.0.0"; } { name = "crossbeam-epoch"; packageId = "crossbeam-epoch"; optional = true; usesDefaultFeatures = false; } { name = "crossbeam-utils"; packageId = "crossbeam-utils"; optional = true; usesDefaultFeatures = false; } ]; features = { "default" = [ "std" ]; "std" = [ "crossbeam-epoch/std" "crossbeam-utils/std" ]; }; resolvedDefaultFeatures = [ "crossbeam-epoch" "crossbeam-utils" "default" "std" ]; }; "crossbeam-epoch" = rec { crateName = "crossbeam-epoch"; version = "0.9.3"; edition = "2018"; sha256 = "04jbrwrm6ibmd83anc3difsvk0fgjyr1aqs9k33sizlmxcwzd115"; authors = [ "The Crossbeam Project Developers" ]; dependencies = [ { name = "cfg-if"; packageId = "cfg-if 1.0.0"; } { name = "crossbeam-utils"; packageId = "crossbeam-utils"; usesDefaultFeatures = false; } { name = "lazy_static"; packageId = "lazy_static"; optional = true; } { name = "memoffset"; packageId = "memoffset"; } { name = "scopeguard"; packageId = "scopeguard"; usesDefaultFeatures = false; } ]; features = { "default" = [ "std" ]; "loom" = [ "loom-crate" "crossbeam-utils/loom" ]; "nightly" = [ "crossbeam-utils/nightly" "const_fn" ]; "std" = [ "alloc" "crossbeam-utils/std" "lazy_static" ]; }; resolvedDefaultFeatures = [ "alloc" "lazy_static" "std" ]; }; "crossbeam-utils" = rec { crateName = "crossbeam-utils"; version = "0.8.3"; edition = "2018"; sha256 = "0j9cjldgd1x6l8lc8kvqryw35fny9iix9in5k7zfya0lm6gxksg7"; authors = [ "The Crossbeam Project Developers" ]; dependencies = [ { name = "cfg-if"; packageId = "cfg-if 1.0.0"; } { name = "lazy_static"; packageId = "lazy_static"; optional = true; } ]; buildDependencies = [ { name = "autocfg"; packageId = "autocfg"; } ]; features = { "default" = [ "std" ]; "std" = [ "lazy_static" ]; }; resolvedDefaultFeatures = [ "default" "lazy_static" "std" ]; }; "csv" = rec { crateName = "csv"; version = "1.1.6"; edition = "2018"; sha256 = "1q9nqn0qlamwl18v57p82c8yhxy43lkzf2z1mndmycsvqinkm092"; authors = [ "Andrew Gallant " ]; dependencies = [ { name = "bstr"; packageId = "bstr"; features = [ "serde1" ]; } { name = "csv-core"; packageId = "csv-core"; } { name = "itoa"; packageId = "itoa"; } { name = "ryu"; packageId = "ryu"; } { name = "serde"; packageId = "serde"; } ]; devDependencies = [ { name = "serde"; packageId = "serde"; features = [ "derive" ]; } ]; }; "csv-core" = rec { crateName = "csv-core"; version = "0.1.10"; edition = "2018"; sha256 = "145wcc3560v1kmysqqspvddppiysr2rifqzy4nnlh3r6kxanc91b"; authors = [ "Andrew Gallant " ]; dependencies = [ { name = "memchr"; packageId = "memchr"; usesDefaultFeatures = false; } ]; features = { "libc" = [ "memchr/libc" ]; }; resolvedDefaultFeatures = [ "default" ]; }; "ctor" = rec { crateName = "ctor"; version = "0.1.20"; edition = "2018"; sha256 = "0v80naiw5fp81xkyfkds6jpyamf3wx43kz4nif936bkq3any562y"; procMacro = true; authors = [ "Matt Mastracci " ]; dependencies = [ { name = "quote"; packageId = "quote"; } { name = "syn"; packageId = "syn"; usesDefaultFeatures = false; features = [ "full" "parsing" "printing" "proc-macro" ]; } ]; }; "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" ]; }; "duct" = rec { crateName = "duct"; version = "0.13.5"; edition = "2018"; crateBin = []; sha256 = "13bxiy0y1dck3xz28rqw5ylf2ykv6mk8ww6g8408x26hksjs1ihg"; authors = [ "oconnor663@gmail.com" ]; dependencies = [ { name = "libc"; packageId = "libc"; target = { target, features }: (target."unix" or false); } { name = "once_cell"; packageId = "once_cell"; } { name = "os_pipe"; packageId = "os_pipe"; } { name = "shared_child"; packageId = "shared_child"; } ]; }; "either" = rec { crateName = "either"; version = "1.6.1"; edition = "2015"; sha256 = "0mwl9vngqf5jvrhmhn9x60kr5hivxyjxbmby2pybncxfqhf4z3g7"; authors = [ "bluss" ]; features = { "default" = [ "use_std" ]; }; }; "env_logger" = rec { crateName = "env_logger"; version = "0.8.3"; edition = "2018"; sha256 = "0gwx1pvbv99fj9wpicknyv4p2vj997xpva8ac5dg03m35q0jlf8p"; authors = [ "The Rust Project Developers" ]; dependencies = [ { name = "atty"; packageId = "atty"; optional = true; } { name = "humantime"; packageId = "humantime"; optional = true; } { name = "log"; packageId = "log"; features = [ "std" ]; } { name = "regex"; packageId = "regex"; optional = true; usesDefaultFeatures = false; features = [ "std" "perf" ]; } { name = "termcolor"; packageId = "termcolor"; optional = true; } ]; features = { "default" = [ "termcolor" "atty" "humantime" "regex" ]; }; resolvedDefaultFeatures = [ "atty" "default" "humantime" "regex" "termcolor" ]; }; "errno" = rec { crateName = "errno"; version = "0.2.7"; edition = "2015"; sha256 = "1zj6rra8n7d7gagppvvs5pvrfblad6x4ln5knb4kg7dfkkxz4s7s"; authors = [ "Chris Wong " ]; dependencies = [ { name = "errno-dragonfly"; packageId = "errno-dragonfly"; target = { target, features }: (target."os" == "dragonfly"); } { name = "libc"; packageId = "libc"; target = { target, features }: (target."os" == "hermit"); } { name = "libc"; packageId = "libc"; target = { target, features }: (target."os" == "wasi"); } { name = "libc"; packageId = "libc"; target = { target, features }: (target."unix" or false); } { name = "winapi"; packageId = "winapi"; target = { target, features }: (target."windows" or false); features = [ "errhandlingapi" "minwindef" "ntdef" "winbase" ]; } ]; }; "errno-dragonfly" = rec { crateName = "errno-dragonfly"; version = "0.1.1"; edition = "2015"; sha256 = "0rshlc00nv45f14v2l1w0ma2nf1jg5j7q9pvw7hh018r6r73bjhl"; authors = [ "Michael Neumann " ]; dependencies = [ { name = "libc"; packageId = "libc"; } ]; buildDependencies = [ { name = "gcc"; packageId = "gcc"; } ]; }; "fake-simd" = rec { crateName = "fake-simd"; version = "0.1.2"; edition = "2015"; sha256 = "1vfylvk4va2ivqx85603lyqqp0zk52cgbs4n5nfbbbqx577qm2p8"; authors = [ "The Rust-Crypto Project Developers" ]; }; "flate2" = rec { crateName = "flate2"; version = "1.0.20"; edition = "2018"; sha256 = "1q5b4r2rclhjbcxlbv5231avp1y6y8bynrf5v3brdzhhvr9yqfnd"; authors = [ "Alex Crichton " "Josh Triplett " ]; dependencies = [ { name = "cfg-if"; packageId = "cfg-if 1.0.0"; } { 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" ]; }; "futures 0.1.31" = rec { crateName = "futures"; version = "0.1.31"; edition = "2015"; sha256 = "0y46qbmhi37dqkch8dlfq5aninqpzqgrr98awkb3rn4fxww1lirs"; authors = [ "Alex Crichton " ]; features = { "default" = [ "use_std" "with-deprecated" ]; }; resolvedDefaultFeatures = [ "default" "use_std" "with-deprecated" ]; }; "futures 0.3.14" = rec { crateName = "futures"; version = "0.3.14"; edition = "2018"; sha256 = "0lyjglxqdm91wdy646x9qrys9wfpk9g93ydzl4yasng48lsq3md9"; 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" ]; "cfg-target-has-atomic" = [ "futures-core/cfg-target-has-atomic" "futures-task/cfg-target-has-atomic" "futures-channel/cfg-target-has-atomic" "futures-util/cfg-target-has-atomic" ]; "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.14"; edition = "2018"; sha256 = "09gc57djz490yljh3ihvgxfwx3v81v7y0q9h06k3g4995ajwcyff"; 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" ]; "cfg-target-has-atomic" = [ "futures-core/cfg-target-has-atomic" ]; "default" = [ "std" ]; "sink" = [ "futures-sink" ]; "std" = [ "alloc" "futures-core/std" ]; "unstable" = [ "futures-core/unstable" ]; }; resolvedDefaultFeatures = [ "alloc" "futures-sink" "sink" "std" ]; }; "futures-core" = rec { crateName = "futures-core"; version = "0.3.14"; edition = "2018"; sha256 = "058qmyvpvhzkw9aykm6ls20k3dsy4jaafdqs1xjh3jm6vp3d3309"; authors = [ "Alex Crichton " ]; features = { "default" = [ "std" ]; "std" = [ "alloc" ]; }; resolvedDefaultFeatures = [ "alloc" "std" ]; }; "futures-executor" = rec { crateName = "futures-executor"; version = "0.3.14"; edition = "2018"; sha256 = "17acz5vpbgg850wfn1z5gscl4d5rlh50ilmi9400z87d89qcpxhh"; 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.14"; edition = "2018"; sha256 = "016b6pfcsaavwcpx22psh6n36s13ymc23nqghcxc188fncgilnin"; authors = [ "Alex Crichton " ]; features = { "default" = [ "std" ]; }; resolvedDefaultFeatures = [ "std" ]; }; "futures-macro" = rec { crateName = "futures-macro"; version = "0.3.14"; edition = "2018"; sha256 = "12xvq5rsgi6jyynbxkrvbf1j620jy8xvmrqx9zmpvkc2l4rng336"; 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" ]; } ]; }; "futures-sink" = rec { crateName = "futures-sink"; version = "0.3.14"; edition = "2018"; sha256 = "08vc88majhvizpxpr44h0c240k2ag7is99v153cf6pam7i1jjmjw"; authors = [ "Alex Crichton " ]; features = { "default" = [ "std" ]; "std" = [ "alloc" ]; }; resolvedDefaultFeatures = [ "alloc" "std" ]; }; "futures-task" = rec { crateName = "futures-task"; version = "0.3.14"; edition = "2018"; sha256 = "1g41ymlqvfjm7l1x4w2xamgwcpnh9gvh5xx1v6k3nvq7jl8aayms"; authors = [ "Alex Crichton " ]; features = { "default" = [ "std" ]; "std" = [ "alloc" ]; }; resolvedDefaultFeatures = [ "alloc" "std" ]; }; "futures-util" = rec { crateName = "futures-util"; version = "0.3.14"; edition = "2018"; sha256 = "09f0x4nisa9m9rgdcnh09yv7h4i7whbdidm6y0kkkwk09pall51w"; 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; } ]; features = { "alloc" = [ "futures-core/alloc" "futures-task/alloc" ]; "async-await-macro" = [ "async-await" "futures-macro" "proc-macro-hack" "proc-macro-nested" ]; "cfg-target-has-atomic" = [ "futures-core/cfg-target-has-atomic" "futures-task/cfg-target-has-atomic" ]; "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" "futures-channel" "futures-io" "futures-macro" "futures-sink" "io" "memchr" "proc-macro-hack" "proc-macro-nested" "sink" "slab" "std" ]; }; "fxhash" = rec { crateName = "fxhash"; version = "0.2.1"; edition = "2015"; sha256 = "037mb9ichariqi45xm6mz0b11pa92gj38ba0409z3iz239sns6y3"; libPath = "lib.rs"; authors = [ "cbreeden " ]; dependencies = [ { name = "byteorder"; packageId = "byteorder"; } ]; }; "gcc" = rec { crateName = "gcc"; version = "0.3.55"; edition = "2015"; crateBin = []; sha256 = "1hng1sajn4r67hndvhjysswz8niayjwvcj42zphpxzhbz89kjpwg"; authors = [ "Alex Crichton " ]; features = { "parallel" = [ "rayon" ]; }; }; "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 1.0.0"; } { 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" ]; }; resolvedDefaultFeatures = [ "std" ]; }; "getrandom 0.2.2" = rec { crateName = "getrandom"; version = "0.2.2"; edition = "2018"; sha256 = "1j1jcwahnkn45kapq9i5nvw2s5hcfmp1zpjx0fzl0wcy4w2mfjf9"; authors = [ "The Rand Project Developers" ]; dependencies = [ { name = "cfg-if"; packageId = "cfg-if 1.0.0"; } { name = "js-sys"; packageId = "js-sys"; optional = true; target = { target, features }: ((target."arch" == "wasm32") && (target."os" == "unknown")); } { 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"); } { name = "wasm-bindgen"; packageId = "wasm-bindgen"; optional = true; usesDefaultFeatures = false; target = { target, features }: ((target."arch" == "wasm32") && (target."os" == "unknown")); } ]; features = { "js" = [ "wasm-bindgen" "js-sys" ]; "rustc-dep-of-std" = [ "compiler_builtins" "core" "libc/rustc-dep-of-std" "wasi/rustc-dep-of-std" ]; }; resolvedDefaultFeatures = [ "js" "js-sys" "std" "wasm-bindgen" ]; }; "half" = rec { crateName = "half"; version = "1.7.1"; edition = "2018"; sha256 = "1wzavaaaa2jwkm4i1dbglmwjfsdhn4n73wrkbdzllaynlams5b32"; authors = [ "Kathryn Long " ]; features = { "serialize" = [ "serde" ]; "std" = [ "alloc" ]; }; }; "hashbrown" = rec { crateName = "hashbrown"; version = "0.9.1"; edition = "2018"; sha256 = "016dsm9s4xmxlkw2jfikm54qlz6vyk0qr280gab7kzp342jf9byp"; 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.2"; edition = "2018"; sha256 = "1b56s2c1ymdd0qmy31bw0ndhm31hcdamnhg3npp7ssrmc1ag9jw7"; authors = [ "Without Boats " ]; dependencies = [ { name = "unicode-segmentation"; packageId = "unicode-segmentation"; } ]; }; "hermit-abi" = rec { crateName = "hermit-abi"; version = "0.1.18"; edition = "2018"; sha256 = "0p6czgbk1izviwxzm6ypy3vz2wqj1yd3ab03wp82xqjng7klsbrj"; 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" ]; }; "hex" = rec { crateName = "hex"; version = "0.4.3"; edition = "2018"; sha256 = "0w1a4davm1lgzpamwnba907aysmlrnygbqmfis2mqjx5m552a93z"; authors = [ "KokaKiwi " ]; features = { "default" = [ "std" ]; "std" = [ "alloc" ]; }; resolvedDefaultFeatures = [ "alloc" "default" "std" ]; }; "humantime" = rec { crateName = "humantime"; version = "2.1.0"; edition = "2018"; sha256 = "1r55pfkkf5v0ji1x6izrjwdq9v6sc7bv99xj6srywcar37xmnfls"; authors = [ "Paul Colomiets " ]; }; "im-rc" = rec { crateName = "im-rc"; version = "15.0.0"; edition = "2018"; sha256 = "0gsgcs1nn38r40973l6zr1v4d85f4s9qyl32n5f20jphf5z9ba1w"; authors = [ "Bodil Stokke " ]; dependencies = [ { name = "bitmaps"; packageId = "bitmaps"; } { name = "rand_core"; packageId = "rand_core 0.5.1"; } { name = "rand_xoshiro"; packageId = "rand_xoshiro"; } { name = "sized-chunks"; packageId = "sized-chunks"; } { name = "typenum"; packageId = "typenum"; } ]; buildDependencies = [ { name = "version_check"; packageId = "version_check"; } ]; features = { "pool" = [ "refpool" "sized-chunks/refpool" ]; }; }; "indexmap" = rec { crateName = "indexmap"; version = "1.6.2"; edition = "2018"; sha256 = "1wxfh55zlrlpdxfcvvvj6wwc46f23cnb0j9q71190yl9pyh4aj42"; authors = [ "bluss" "Josh Stone " ]; dependencies = [ { name = "hashbrown"; packageId = "hashbrown"; usesDefaultFeatures = false; features = [ "raw" ]; } ]; buildDependencies = [ { name = "autocfg"; packageId = "autocfg"; } ]; features = { "serde-1" = [ "serde" ]; }; }; "itertools 0.10.0" = rec { crateName = "itertools"; version = "0.10.0"; edition = "2018"; sha256 = "06dkghwi1a6ah2103gibxnr2ys762m5x4rp75x0q43imis8p5m9p"; authors = [ "bluss" ]; dependencies = [ { name = "either"; packageId = "either"; usesDefaultFeatures = false; } ]; features = { "default" = [ "use_std" ]; "use_std" = [ "use_alloc" ]; }; resolvedDefaultFeatures = [ "default" "use_alloc" "use_std" ]; }; "itertools 0.9.0" = rec { crateName = "itertools"; version = "0.9.0"; edition = "2018"; sha256 = "0jyml7ygr7kijkcjdl3fk5f34y5h5jsavclim7l13zjiavw1hkr8"; 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.50"; edition = "2018"; sha256 = "0k526bcp63ma05pwxjwzfmn9zhmiqfxlqnzg8vw6g3sbx3izk69d"; authors = [ "The wasm-bindgen Developers" ]; dependencies = [ { name = "wasm-bindgen"; packageId = "wasm-bindgen"; } ]; }; "lazy_static" = rec { crateName = "lazy_static"; version = "1.4.0"; edition = "2015"; sha256 = "0in6ikhw8mgl33wjv6q6xfrb5b9jr16q8ygjy803fay4zcisvaz2"; authors = [ "Marvin Löbel " ]; features = { "spin_no_std" = [ "spin" ]; }; }; "leb128" = rec { crateName = "leb128"; version = "0.2.4"; edition = "2015"; crateBin = []; sha256 = "0aid6qy7qlyqr9rhb3md4s5693b93pdidkfzdw86y3x05dzshxim"; authors = [ "Nick Fitzgerald " "Philip Craig " ]; features = { }; }; "libc" = rec { crateName = "libc"; version = "0.2.93"; edition = "2015"; sha256 = "0hcd6xzln31gmi8bpydrbikgq3pj7s9cnqaslqd28nqhyrmzd1ck"; authors = [ "The Rust Project Developers" ]; features = { "default" = [ "std" ]; "rustc-dep-of-std" = [ "align" "rustc-std-workspace-core" ]; "use_std" = [ "std" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; "log" = rec { crateName = "log"; version = "0.4.14"; edition = "2015"; sha256 = "04175hv0v62shd82qydq58a48k3bjijmk54v38zgqlbxqkkbpfai"; authors = [ "The Rust Project Developers" ]; dependencies = [ { name = "cfg-if"; packageId = "cfg-if 1.0.0"; } ]; features = { "kv_unstable" = [ "value-bag" ]; "kv_unstable_serde" = [ "kv_unstable_std" "value-bag/serde" "serde" ]; "kv_unstable_std" = [ "std" "kv_unstable" "value-bag/error" ]; "kv_unstable_sval" = [ "kv_unstable" "value-bag/sval" "sval" ]; }; resolvedDefaultFeatures = [ "std" ]; }; "maplit" = rec { crateName = "maplit"; version = "1.0.2"; edition = "2015"; sha256 = "07b5kjnhrrmfhgqm9wprjw8adx6i225lqp49gasgqg74lahnabiy"; authors = [ "bluss" ]; }; "matchers" = rec { crateName = "matchers"; version = "0.0.1"; edition = "2018"; sha256 = "1q8ckqmkjqkznvdi9x0z769yz2bmvlqcwx51ad2lpk4mfmgpi6gh"; authors = [ "Eliza Weisman " ]; dependencies = [ { name = "regex-automata"; packageId = "regex-automata"; } ]; }; "memchr" = rec { crateName = "memchr"; version = "2.3.4"; edition = "2015"; sha256 = "098m9clfs495illlw00hv2gg67mhm7jflld3msyclvi5m9xc9q8f"; authors = [ "Andrew Gallant " "bluss" ]; features = { "default" = [ "std" ]; "use_std" = [ "std" ]; }; resolvedDefaultFeatures = [ "default" "std" "use_std" ]; }; "memoffset" = rec { crateName = "memoffset"; version = "0.6.3"; edition = "2015"; sha256 = "079nahsp9sr5dhahd173i6a8k0sl82w6s4awsigzilcf3rcbcgzq"; authors = [ "Gilad Naaman " ]; buildDependencies = [ { name = "autocfg"; packageId = "autocfg"; } ]; features = { }; resolvedDefaultFeatures = [ "default" ]; }; "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"; } ]; features = { "rustc-dep-of-std" = [ "core" "alloc" "compiler_builtins" "adler/rustc-dep-of-std" ]; }; }; "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"; } ]; 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"; } ]; features = { "default" = [ "std" ]; }; resolvedDefaultFeatures = [ "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.7.2"; edition = "2018"; sha256 = "18qmpyfigg4ibdhjy5mwcjhzk9adwlgfaqv7nj430ivm86q0i2xg"; authors = [ "Aleksey Kladov " ]; features = { "alloc" = [ "race" ]; "default" = [ "std" ]; "std" = [ "alloc" ]; }; resolvedDefaultFeatures = [ "alloc" "default" "race" "std" ]; }; "oorandom" = rec { crateName = "oorandom"; version = "11.1.3"; edition = "2018"; sha256 = "0xdm4vd89aiwnrk1xjwzklnchjqvib4klcihlc2bsd4x50mbrc8a"; authors = [ "Simon Heath " ]; }; "opaque-debug" = rec { crateName = "opaque-debug"; version = "0.2.3"; edition = "2015"; sha256 = "172j6bs8ndclqxa2m64qc0y1772rr73g4l9fg2svscgicnbfff98"; authors = [ "RustCrypto Developers" ]; }; "os_pipe" = rec { crateName = "os_pipe"; version = "0.9.2"; edition = "2018"; crateBin = []; sha256 = "04yjs1hf88jjm17g8a2lr7ibxyyg460rzbgcw9f1yzihq833y8zv"; authors = [ "Jack O'Connor" ]; dependencies = [ { name = "libc"; packageId = "libc"; target = { target, features }: (!(target."windows" or false)); } { name = "winapi"; packageId = "winapi"; target = { target, features }: (target."windows" or false); features = [ "handleapi" "namedpipeapi" "processthreadsapi" "winnt" ]; } ]; }; "os_str_bytes" = rec { crateName = "os_str_bytes"; version = "2.4.0"; edition = "2018"; sha256 = "11agh8n3x2l4sr3sxvx6byc1j3ryb1g6flb1ywn0qhq7xv1y3cmg"; authors = [ "dylni" ]; features = { }; resolvedDefaultFeatures = [ "raw" ]; }; "output_vt100" = rec { crateName = "output_vt100"; version = "0.1.2"; edition = "2018"; sha256 = "1ygqplpxz4gg3i8f3rkan2q69pqll7gv65l2mmd8r9dphnvwbkak"; authors = [ "Phuntsok Drak-pa " ]; dependencies = [ { name = "winapi"; packageId = "winapi"; features = [ "winuser" "winbase" "consoleapi" "processenv" ]; } ]; }; "pin-project-lite" = rec { crateName = "pin-project-lite"; version = "0.2.6"; edition = "2018"; sha256 = "01g96zxghb33s1vsjmjpn9l3a2nxdqj7glf9lhq7q5wjkhjiy3nw"; authors = [ "Taiki Endo " ]; }; "pin-utils" = rec { crateName = "pin-utils"; version = "0.1.0"; edition = "2018"; sha256 = "117ir7vslsl2z1a7qzhws4pd01cg2d3338c47swjyvqv2n60v1wb"; authors = [ "Josef Brandl " ]; }; "plotters" = rec { crateName = "plotters"; version = "0.3.0"; edition = "2018"; sha256 = "0yihxbpqin9y6ywd57ajizqri59x7ld9qnkzgix93l39y7jhmjj5"; authors = [ "Hao Hou " ]; dependencies = [ { name = "num-traits"; packageId = "num-traits"; } { name = "plotters-backend"; packageId = "plotters-backend"; } { name = "plotters-svg"; packageId = "plotters-svg"; optional = true; } { name = "wasm-bindgen"; packageId = "wasm-bindgen"; target = { target, features }: (target."arch" == "wasm32"); } { name = "web-sys"; packageId = "web-sys"; target = { target, features }: (target."arch" == "wasm32"); features = [ "Document" "DomRect" "Element" "HtmlElement" "Node" "Window" "HtmlCanvasElement" "CanvasRenderingContext2d" ]; } ]; features = { "all_elements" = [ "errorbar" "candlestick" "boxplot" "histogram" ]; "all_series" = [ "area_series" "line_series" "point_series" "surface_series" ]; "bitmap_backend" = [ "plotters-bitmap" "ttf" ]; "bitmap_encoder" = [ "plotters-bitmap/image_encoder" ]; "bitmap_gif" = [ "plotters-bitmap/gif_backend" ]; "datetime" = [ "chrono" ]; "default" = [ "bitmap_backend" "bitmap_encoder" "bitmap_gif" "svg_backend" "chrono" "ttf" "image" "deprecated_items" "all_series" "all_elements" ]; "evcxr" = [ "svg_backend" ]; "svg_backend" = [ "plotters-svg" ]; "ttf" = [ "font-kit" "rusttype" "lazy_static" ]; }; resolvedDefaultFeatures = [ "area_series" "line_series" "plotters-svg" "svg_backend" ]; }; "plotters-backend" = rec { crateName = "plotters-backend"; version = "0.3.0"; edition = "2018"; sha256 = "1425kzgyimxxq6n85y1wlhmr4y9vy16lxaiwfpga3cqwvk6zyzxh"; authors = [ "Hao Hou " ]; }; "plotters-svg" = rec { crateName = "plotters-svg"; version = "0.3.0"; edition = "2018"; sha256 = "04fj393irdjb4mavcdwwk1bjnw7gqjp668415a24nq6r7gi052mk"; authors = [ "Hao Hou " ]; dependencies = [ { name = "plotters-backend"; packageId = "plotters-backend"; } ]; features = { }; }; "ppv-lite86" = rec { crateName = "ppv-lite86"; version = "0.2.10"; edition = "2018"; sha256 = "0ms8198kclg4h96ggbziixxmsdl847s648kmbx11zlmjsqjccx5c"; authors = [ "The CryptoCorrosion Contributors" ]; features = { "default" = [ "std" ]; }; resolvedDefaultFeatures = [ "simd" "std" ]; }; "pretty_assertions" = rec { crateName = "pretty_assertions"; version = "0.7.1"; edition = "2018"; sha256 = "1101lnyl9qf3davi8v6h6b93m25b101n43ibvr2qvpx74wn595zj"; authors = [ "Colin Kiegel " "Florent Fayolle " "Tom Milligan " ]; dependencies = [ { name = "ansi_term"; packageId = "ansi_term 0.12.1"; } { name = "ctor"; packageId = "ctor"; target = { target, features }: (target."windows" or false); } { name = "diff"; packageId = "diff"; } { name = "output_vt100"; packageId = "output_vt100"; target = { target, features }: (target."windows" or false); } ]; }; "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.26"; edition = "2018"; sha256 = "1v4w5jchgsssr727iyv986r8jaw6z80bzlhqgrbp78nw2lr02lm1"; authors = [ "Alex Crichton " "David Tolnay " ]; dependencies = [ { name = "unicode-xid"; packageId = "unicode-xid"; } ]; features = { "default" = [ "proc-macro" ]; }; resolvedDefaultFeatures = [ "default" "proc-macro" ]; }; "proptest" = rec { crateName = "proptest"; version = "0.10.1"; edition = "2018"; sha256 = "0vv4cvwn1v7h0zjajmhznll554a2ri8dqw26xql3q49r246cirhj"; authors = [ "Jason Lingle" ]; dependencies = [ { name = "bit-set"; packageId = "bit-set"; optional = true; } { name = "bitflags"; packageId = "bitflags"; } { name = "byteorder"; packageId = "byteorder"; usesDefaultFeatures = false; } { name = "lazy_static"; packageId = "lazy_static"; optional = true; } { name = "num-traits"; packageId = "num-traits"; usesDefaultFeatures = false; } { name = "quick-error"; packageId = "quick-error"; optional = true; } { name = "rand"; packageId = "rand 0.7.3"; usesDefaultFeatures = false; features = [ "alloc" ]; } { name = "rand_chacha"; packageId = "rand_chacha 0.2.2"; usesDefaultFeatures = false; } { name = "rand_xorshift"; packageId = "rand_xorshift"; } { name = "regex-syntax"; packageId = "regex-syntax"; optional = true; } { name = "rusty-fork"; packageId = "rusty-fork"; optional = true; usesDefaultFeatures = false; } { name = "tempfile"; packageId = "tempfile"; optional = true; } ]; features = { "default" = [ "std" "fork" "timeout" "bit-set" "break-dead-code" ]; "default-code-coverage" = [ "std" "fork" "timeout" "bit-set" ]; "fork" = [ "std" "rusty-fork" "tempfile" ]; "hardware-rng" = [ "x86" ]; "std" = [ "rand/std" "byteorder/std" "lazy_static" "quick-error" "regex-syntax" "num-traits/std" ]; "timeout" = [ "fork" "rusty-fork/timeout" ]; }; resolvedDefaultFeatures = [ "bit-set" "break-dead-code" "default" "fork" "lazy_static" "quick-error" "regex-syntax" "rusty-fork" "std" "tempfile" "timeout" ]; }; "quick-error" = rec { crateName = "quick-error"; version = "1.2.3"; edition = "2015"; sha256 = "1q6za3v78hsspisc197bg3g7rpc989qycy8ypr8ap8igv10ikl51"; authors = [ "Paul Colomiets " "Colin Kiegel " ]; }; "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.7.3" = rec { crateName = "rand"; version = "0.7.3"; edition = "2018"; sha256 = "00sdaimkbz491qgi6qxkv582yivl32m2jd401kzbn94vsiwicsva"; authors = [ "The Rand Project Developers" "The Rust Project Developers" ]; dependencies = [ { name = "getrandom"; packageId = "getrandom 0.1.16"; rename = "getrandom_package"; optional = true; } { name = "libc"; packageId = "libc"; optional = true; usesDefaultFeatures = false; target = { target, features }: (target."unix" or false); } { name = "rand_chacha"; packageId = "rand_chacha 0.2.2"; usesDefaultFeatures = false; target = { target, features }: (!(target."os" == "emscripten")); } { name = "rand_core"; packageId = "rand_core 0.5.1"; } { name = "rand_hc"; packageId = "rand_hc 0.2.0"; target = { target, features }: (target."os" == "emscripten"); } { name = "rand_pcg"; packageId = "rand_pcg"; optional = true; } ]; devDependencies = [ { name = "rand_hc"; packageId = "rand_hc 0.2.0"; } { name = "rand_pcg"; packageId = "rand_pcg"; } ]; features = { "alloc" = [ "rand_core/alloc" ]; "default" = [ "std" ]; "getrandom" = [ "getrandom_package" "rand_core/getrandom" ]; "nightly" = [ "simd_support" ]; "simd_support" = [ "packed_simd" ]; "small_rng" = [ "rand_pcg" ]; "std" = [ "rand_core/std" "rand_chacha/std" "alloc" "getrandom" "libc" ]; "stdweb" = [ "getrandom_package/stdweb" ]; "wasm-bindgen" = [ "getrandom_package/wasm-bindgen" ]; }; resolvedDefaultFeatures = [ "alloc" "default" "getrandom" "getrandom_package" "libc" "rand_pcg" "small_rng" "std" ]; }; "rand 0.8.3" = rec { crateName = "rand"; version = "0.8.3"; edition = "2018"; sha256 = "0zldxfx4gi551n2fna4zz9ab22zsnzw1mj5hzi5nfs24dgkfgy8f"; 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.0"; optional = true; usesDefaultFeatures = false; target = { target, features }: (!(target."os" == "emscripten")); } { name = "rand_core"; packageId = "rand_core 0.6.2"; } { name = "rand_hc"; packageId = "rand_hc 0.3.0"; optional = true; target = { target, features }: (target."os" == "emscripten"); } ]; devDependencies = [ { name = "rand_hc"; packageId = "rand_hc 0.3.0"; } ]; features = { "alloc" = [ "rand_core/alloc" ]; "default" = [ "std" "std_rng" ]; "getrandom" = [ "rand_core/getrandom" ]; "serde1" = [ "serde" ]; "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.2.2" = rec { crateName = "rand_chacha"; version = "0.2.2"; edition = "2018"; sha256 = "00il36fkdbsmpr99p9ksmmp6dn1md7rmnwmz0rr77jbrca2yvj7l"; authors = [ "The Rand Project Developers" "The Rust Project Developers" "The CryptoCorrosion Contributors" ]; dependencies = [ { name = "ppv-lite86"; packageId = "ppv-lite86"; usesDefaultFeatures = false; features = [ "simd" ]; } { name = "rand_core"; packageId = "rand_core 0.5.1"; } ]; features = { "default" = [ "std" "simd" ]; "std" = [ "ppv-lite86/std" ]; }; resolvedDefaultFeatures = [ "std" ]; }; "rand_chacha 0.3.0" = rec { crateName = "rand_chacha"; version = "0.3.0"; edition = "2018"; sha256 = "03df2xh5nbdvwr17qm3sviaxa95r8yhm1nil2pr0pqf90p7ka9z1"; 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.2"; } ]; features = { "default" = [ "std" ]; "std" = [ "ppv-lite86/std" ]; }; resolvedDefaultFeatures = [ "std" ]; }; "rand_core 0.5.1" = rec { crateName = "rand_core"; version = "0.5.1"; edition = "2018"; sha256 = "06bdvx08v3rkz451cm7z59xwwqn1rkfh6v9ay77b14f8dwlybgch"; authors = [ "The Rand Project Developers" "The Rust Project Developers" ]; dependencies = [ { name = "getrandom"; packageId = "getrandom 0.1.16"; optional = true; } ]; features = { "serde1" = [ "serde" ]; "std" = [ "alloc" "getrandom" "getrandom/std" ]; }; resolvedDefaultFeatures = [ "alloc" "getrandom" "std" ]; }; "rand_core 0.6.2" = rec { crateName = "rand_core"; version = "0.6.2"; edition = "2018"; sha256 = "1rvas1afjvd2827b8mf2ilg78h3ksl9npkrdds3wbw9x33mndkrl"; authors = [ "The Rand Project Developers" "The Rust Project Developers" ]; dependencies = [ { name = "getrandom"; packageId = "getrandom 0.2.2"; optional = true; } ]; features = { "serde1" = [ "serde" ]; "std" = [ "alloc" "getrandom" "getrandom/std" ]; }; resolvedDefaultFeatures = [ "alloc" "getrandom" "std" ]; }; "rand_hc 0.2.0" = rec { crateName = "rand_hc"; version = "0.2.0"; edition = "2018"; sha256 = "0g31sqwpmsirdlwr0svnacr4dbqyz339im4ssl9738cjgfpjjcfa"; authors = [ "The Rand Project Developers" ]; dependencies = [ { name = "rand_core"; packageId = "rand_core 0.5.1"; } ]; }; "rand_hc 0.3.0" = rec { crateName = "rand_hc"; version = "0.3.0"; edition = "2018"; sha256 = "0wra6ar22zdjkry9dsq1mg620m4h3qb9s8rfykkz4im4crqfz41i"; authors = [ "The Rand Project Developers" ]; dependencies = [ { name = "rand_core"; packageId = "rand_core 0.6.2"; } ]; }; "rand_pcg" = rec { crateName = "rand_pcg"; version = "0.2.1"; edition = "2018"; sha256 = "0ab4h6s6x3py833jk61lwadq83qd1c8bih2hgi6yps9rnv0x1aqn"; authors = [ "The Rand Project Developers" ]; dependencies = [ { name = "rand_core"; packageId = "rand_core 0.5.1"; } ]; features = { "serde1" = [ "serde" ]; }; }; "rand_xorshift" = rec { crateName = "rand_xorshift"; version = "0.2.0"; edition = "2018"; sha256 = "1a6wy76lc5fimm1n9n8fzhp4cfjwfwxh4hx63bg3vlh1d2w1dm3p"; authors = [ "The Rand Project Developers" "The Rust Project Developers" ]; dependencies = [ { name = "rand_core"; packageId = "rand_core 0.5.1"; } ]; features = { "serde1" = [ "serde" ]; }; }; "rand_xoshiro" = rec { crateName = "rand_xoshiro"; version = "0.4.0"; edition = "2018"; sha256 = "013h45rikipv5bda2ixmwx5rwsk9wpc7mr0a77cz20hxi0pdvz59"; authors = [ "The Rand Project Developers" ]; dependencies = [ { name = "rand_core"; packageId = "rand_core 0.5.1"; } ]; features = { "serde1" = [ "serde" ]; }; }; "rayon" = rec { crateName = "rayon"; version = "1.5.0"; edition = "2018"; sha256 = "0x2n4zkrm6z3avdfh7zgcwx0wq6hx8332dx89v3j1p7s3448w3cb"; authors = [ "Niko Matsakis " "Josh Stone " ]; dependencies = [ { name = "crossbeam-deque"; packageId = "crossbeam-deque"; } { name = "either"; packageId = "either"; usesDefaultFeatures = false; } { name = "rayon-core"; packageId = "rayon-core"; } ]; buildDependencies = [ { name = "autocfg"; packageId = "autocfg"; } ]; }; "rayon-core" = rec { crateName = "rayon-core"; version = "1.9.0"; edition = "2018"; sha256 = "0jpsi8zf66xyx4m5f329lpgiql8775vpm6zqm7zn5p11b6n4dcws"; authors = [ "Niko Matsakis " "Josh Stone " ]; dependencies = [ { name = "crossbeam-channel"; packageId = "crossbeam-channel"; } { name = "crossbeam-deque"; packageId = "crossbeam-deque"; } { name = "crossbeam-utils"; packageId = "crossbeam-utils"; } { name = "lazy_static"; packageId = "lazy_static"; } { name = "num_cpus"; packageId = "num_cpus"; } ]; }; "redox_syscall" = rec { crateName = "redox_syscall"; version = "0.2.6"; edition = "2018"; sha256 = "0hchadrvdfvsrxg7zxz808nj521bnzq552apgs753sycbi5k2w42"; libName = "syscall"; authors = [ "Jeremy Soller " ]; dependencies = [ { name = "bitflags"; packageId = "bitflags"; } ]; }; "regex" = rec { crateName = "regex"; version = "1.4.5"; edition = "2015"; sha256 = "06awg9164h7w4pmbchmj9pkrqn78sa8y252ijqk1pfmyvpn5cw4m"; 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" "memchr" "perf" "perf-cache" "perf-dfa" "perf-inline" "perf-literal" "std" ]; }; "regex-automata" = rec { crateName = "regex-automata"; version = "0.1.9"; edition = "2015"; sha256 = "1r3aqa9c0s9sfrmd2w0mli16ldjzbar0rzb1x7srfjkasrqys7df"; authors = [ "Andrew Gallant " ]; dependencies = [ { name = "byteorder"; packageId = "byteorder"; usesDefaultFeatures = false; } { name = "regex-syntax"; packageId = "regex-syntax"; optional = true; } ]; features = { "default" = [ "std" ]; "std" = [ "regex-syntax" ]; "transducer" = [ "std" "fst" ]; }; resolvedDefaultFeatures = [ "default" "regex-syntax" "std" ]; }; "regex-syntax" = rec { crateName = "regex-syntax"; version = "0.6.23"; edition = "2015"; sha256 = "0j25v3pbfaprpr1k7h8smw5xrs6j5kzznddq50nzcq1f2n4z1m94"; 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" ]; } ]; }; "rustc_version" = rec { crateName = "rustc_version"; version = "0.2.3"; edition = "2015"; sha256 = "02h3x57lcr8l2pm0a645s9whdh33pn5cnrwvn5cb57vcrc53x3hk"; authors = [ "Marvin Löbel " ]; dependencies = [ { name = "semver"; packageId = "semver"; } ]; }; "rusty-fork" = rec { crateName = "rusty-fork"; version = "0.3.0"; edition = "2018"; sha256 = "0kxwq5c480gg6q0j3bg4zzyfh2kwmc3v2ba94jw8ncjc8mpcqgfb"; authors = [ "Jason Lingle" ]; dependencies = [ { name = "fnv"; packageId = "fnv"; } { name = "quick-error"; packageId = "quick-error"; } { name = "tempfile"; packageId = "tempfile"; } { name = "wait-timeout"; packageId = "wait-timeout"; optional = true; } ]; features = { "default" = [ "timeout" ]; "timeout" = [ "wait-timeout" ]; }; resolvedDefaultFeatures = [ "timeout" "wait-timeout" ]; }; "ryu" = rec { crateName = "ryu"; version = "1.0.5"; edition = "2018"; sha256 = "0vpqv1dj7fksa6hm3zpk5rbsjs0ifbfy7xwzsyyil0rx37a03lvi"; authors = [ "David Tolnay " ]; features = { }; }; "same-file" = rec { crateName = "same-file"; version = "1.0.6"; edition = "2018"; sha256 = "00h5j1w87dmhnvbv9l8bic3y7xxsnjmssvifw2ayvgx9mb1ivz4k"; authors = [ "Andrew Gallant " ]; dependencies = [ { name = "winapi-util"; packageId = "winapi-util"; target = { target, features }: (target."windows" or false); } ]; }; "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" ]; }; }; "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.125"; edition = "2015"; sha256 = "0w8i0f4wsq4zd9vz1k6lq00066rjrgzlxkm25h8sfpss387cb3am"; 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 = [ "default" "derive" "serde_derive" "std" ]; }; "serde-wasm-bindgen" = rec { crateName = "serde-wasm-bindgen"; version = "0.1.3"; edition = "2018"; sha256 = "0djnmksp2dxa56vcam93jkmssb5wp9ys6390alpavryhgqpz3rky"; authors = [ "Ingvar Stepanyan " ]; dependencies = [ { name = "fnv"; packageId = "fnv"; } { name = "js-sys"; packageId = "js-sys"; } { name = "serde"; packageId = "serde"; } { name = "wasm-bindgen"; packageId = "wasm-bindgen"; } ]; devDependencies = [ { name = "serde"; packageId = "serde"; features = [ "derive" ]; } ]; features = { }; }; "serde_bytes" = rec { crateName = "serde_bytes"; version = "0.11.5"; edition = "2018"; sha256 = "1fcb6sw8wkrj4ylm118wkb31hw124nkjnqyhbgqnd8w85zfhgbhn"; authors = [ "David Tolnay " ]; dependencies = [ { name = "serde"; packageId = "serde"; usesDefaultFeatures = false; } ]; features = { "alloc" = [ "serde/alloc" ]; "default" = [ "std" ]; "std" = [ "serde/std" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; "serde_cbor" = rec { crateName = "serde_cbor"; version = "0.11.1"; edition = "2018"; sha256 = "08m62mfqjnpa543kd9r9cyxlqc6y73avhsl3n8svgs4h5zxaq60y"; authors = [ "Pyfisch " "Steven Fackler " ]; dependencies = [ { name = "half"; packageId = "half"; } { name = "serde"; packageId = "serde"; usesDefaultFeatures = false; } ]; features = { "alloc" = [ "serde/alloc" ]; "default" = [ "std" ]; "std" = [ "serde/std" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; "serde_derive" = rec { crateName = "serde_derive"; version = "1.0.125"; edition = "2015"; sha256 = "0vfhndim4sa1i1x38dyvrxyq5v8zxjs0av05ldfkn82qpfibg4xh"; 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.64"; edition = "2018"; sha256 = "0y9gk3yikncrc0zajmwc0pidr7zfwafawb4gidf6mqyskzf9g7kr"; 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" "float_roundtrip" "std" ]; }; "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" ]; }; "sharded-slab" = rec { crateName = "sharded-slab"; version = "0.1.1"; edition = "2018"; sha256 = "1qqlmr2jfhpfgav4y7lax46a7rcrzjn4a2pqj1sgjpg0krqikivr"; authors = [ "Eliza Weisman " ]; dependencies = [ { name = "lazy_static"; packageId = "lazy_static"; } ]; }; "shared_child" = rec { crateName = "shared_child"; version = "0.3.5"; edition = "2018"; sha256 = "0np6g5fmixncky9c0j5xhqxrp1rkxqnmx5vj7spq652vavazgsbb"; authors = [ "jacko" ]; dependencies = [ { name = "libc"; packageId = "libc"; target = { target, features }: (!(target."windows" or false)); } { name = "winapi"; packageId = "winapi"; target = { target, features }: (target."windows" or false); features = [ "synchapi" "winbase" "winerror" "winnt" ]; } ]; }; "sized-chunks" = rec { crateName = "sized-chunks"; version = "0.6.4"; edition = "2018"; sha256 = "01yjydh1a45yp4b07fi1lkfprmj57bsjqnpac7rpik8kkxm5vrk5"; authors = [ "Bodil Stokke " ]; dependencies = [ { name = "bitmaps"; packageId = "bitmaps"; } { name = "typenum"; packageId = "typenum"; } ]; features = { "default" = [ "std" ]; "ringbuffer" = [ "array-ops" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; "slab" = rec { crateName = "slab"; version = "0.4.2"; edition = "2015"; sha256 = "1y59xsa27jk84sxzswjk60xcjf8b4fm5960jwpznrrcmasyva4f1"; authors = [ "Carl Lerche " ]; }; "smallvec" = rec { crateName = "smallvec"; version = "1.6.1"; edition = "2018"; sha256 = "0kk08axr0ybfbjzk65a41k84mb6sfhyajmfndaka9igkx34kf3zy"; authors = [ "The Servo Project Developers" ]; features = { }; }; "strsim 0.10.0" = rec { crateName = "strsim"; version = "0.10.0"; edition = "2015"; sha256 = "08s69r4rcrahwnickvi0kq49z524ci50capybln83mg6b473qivk"; authors = [ "Danny Guo " ]; }; "strsim 0.8.0" = rec { crateName = "strsim"; version = "0.8.0"; edition = "2015"; sha256 = "0sjsm7hrvjdifz661pjxq5w4hf190hx53fra8dfvamacvff139cf"; authors = [ "Danny Guo " ]; }; "syn" = rec { crateName = "syn"; version = "1.0.69"; edition = "2018"; sha256 = "1ywgmchw8cxsafmpvb415j89v46y88c0gk0bi4vcc74bpp39kzj8"; 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"; } ]; 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 1.0.0"; } { name = "libc"; packageId = "libc"; target = { target, features }: (target."unix" or false); } { name = "rand"; packageId = "rand 0.8.3"; } { name = "redox_syscall"; packageId = "redox_syscall"; 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" ]; } ]; }; "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); } ]; }; "test-env-log" = rec { crateName = "test-env-log"; version = "0.2.7"; edition = "2018"; sha256 = "0i151j7r14j65lrv753s138g7pkslq6l1jyg0q6qmk1hlqrb3r5k"; procMacro = true; authors = [ "Daniel Mueller " ]; dependencies = [ { name = "proc-macro2"; packageId = "proc-macro2"; } { name = "quote"; packageId = "quote"; } { name = "syn"; packageId = "syn"; features = [ "full" ]; } ]; features = { "default" = [ "log" ]; }; resolvedDefaultFeatures = [ "default" "log" "trace" ]; }; "textwrap 0.11.0" = rec { crateName = "textwrap"; version = "0.11.0"; edition = "2015"; sha256 = "0q5hky03ik3y50s9sz25r438bc4nwhqc6dqwynv4wylc807n29nk"; authors = [ "Martin Geisler " ]; dependencies = [ { name = "unicode-width"; packageId = "unicode-width"; } ]; }; "textwrap 0.12.1" = 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.24"; edition = "2018"; sha256 = "13m99wjikivkkwd209fgxhdprjxj17s39ldfvn1l8k89jxasdx70"; authors = [ "David Tolnay " ]; dependencies = [ { name = "thiserror-impl"; packageId = "thiserror-impl"; } ]; }; "thiserror-impl" = rec { crateName = "thiserror-impl"; version = "1.0.24"; edition = "2018"; sha256 = "1h7kh6rr4vsm79dmv8qk8drhh2if3zyxc1lqa921l96q22b1hrbp"; 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.1.3"; edition = "2018"; sha256 = "1gccp3grndpi6dyhzylz4hkqnkzc1xyri98n0xwwhnn90i7d4640"; authors = [ "Amanieu d'Antras " ]; dependencies = [ { name = "once_cell"; packageId = "once_cell"; } ]; }; "tinytemplate" = rec { crateName = "tinytemplate"; version = "1.2.1"; edition = "2015"; sha256 = "1g5n77cqkdh9hy75zdb01adxn45mkh9y40wdr7l68xpz35gnnkdy"; authors = [ "Brook Heisler " ]; dependencies = [ { name = "serde"; packageId = "serde"; } { name = "serde_json"; packageId = "serde_json"; } ]; }; "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" ]; }; "tracing" = rec { crateName = "tracing"; version = "0.1.25"; edition = "2018"; sha256 = "17wmgw7bxqvhh5ls1jww4ach3ri5720cawsvbymv32j9nhmxrsq1"; authors = [ "Eliza Weisman " "Tokio Contributors " ]; dependencies = [ { name = "cfg-if"; packageId = "cfg-if 1.0.0"; } { name = "log"; packageId = "log"; optional = true; } { name = "pin-project-lite"; packageId = "pin-project-lite"; } { name = "tracing-attributes"; packageId = "tracing-attributes"; optional = true; } { name = "tracing-core"; packageId = "tracing-core"; usesDefaultFeatures = false; } ]; devDependencies = [ { name = "log"; packageId = "log"; } ]; features = { "attributes" = [ "tracing-attributes" ]; "default" = [ "std" "attributes" ]; "log-always" = [ "log" ]; "std" = [ "tracing-core/std" ]; }; resolvedDefaultFeatures = [ "attributes" "default" "log" "std" "tracing-attributes" ]; }; "tracing-attributes" = rec { crateName = "tracing-attributes"; version = "0.1.15"; edition = "2018"; sha256 = "1qni83p58nrp20i256zm169dnf7cylfchkfd9iza3j076fjnybn4"; procMacro = true; authors = [ "Tokio Contributors " "Eliza Weisman " "David Barsky " ]; dependencies = [ { name = "proc-macro2"; packageId = "proc-macro2"; } { name = "quote"; packageId = "quote"; } { name = "syn"; packageId = "syn"; usesDefaultFeatures = false; features = [ "full" "parsing" "printing" "visit" "visit-mut" "clone-impls" "extra-traits" "proc-macro" ]; } ]; features = { }; }; "tracing-core" = rec { crateName = "tracing-core"; version = "0.1.17"; edition = "2018"; sha256 = "0pvbgv301vw6dq4krc14yqbyyixb42lcs4s57xw05llkgy9f63gm"; authors = [ "Tokio Contributors " ]; dependencies = [ { name = "lazy_static"; packageId = "lazy_static"; optional = true; } ]; features = { "default" = [ "std" ]; "std" = [ "lazy_static" ]; }; resolvedDefaultFeatures = [ "default" "lazy_static" "std" ]; }; "tracing-log" = rec { crateName = "tracing-log"; version = "0.1.2"; edition = "2018"; sha256 = "1qv1cwvdqrgvizkszbff4fvkw0m3nn5yz68r3yaw2hcflivk94m6"; authors = [ "Tokio Contributors " ]; dependencies = [ { name = "lazy_static"; packageId = "lazy_static"; } { name = "log"; packageId = "log"; } { name = "tracing-core"; packageId = "tracing-core"; } ]; features = { "default" = [ "log-tracer" "trace-logger" "std" ]; "std" = [ "log/std" ]; }; resolvedDefaultFeatures = [ "log-tracer" "std" ]; }; "tracing-serde" = rec { crateName = "tracing-serde"; version = "0.1.2"; edition = "2018"; sha256 = "12xjirg0b3cparjdhkd9pksrmv33gz7rdm4gfkvgk15v3x2flrgv"; authors = [ "Tokio Contributors " ]; dependencies = [ { name = "serde"; packageId = "serde"; } { name = "tracing-core"; packageId = "tracing-core"; } ]; }; "tracing-subscriber" = rec { crateName = "tracing-subscriber"; version = "0.2.17"; edition = "2018"; sha256 = "1ajv10w2k16aprdb8mxk672xmnwxh80sm9jpsfjqxxivz339cl3h"; authors = [ "Eliza Weisman " "David Barsky " "Tokio Contributors " ]; dependencies = [ { name = "ansi_term"; packageId = "ansi_term 0.12.1"; optional = true; } { name = "chrono"; packageId = "chrono"; optional = true; usesDefaultFeatures = false; features = [ "clock" "std" ]; } { name = "lazy_static"; packageId = "lazy_static"; optional = true; } { name = "matchers"; packageId = "matchers"; optional = true; } { name = "regex"; packageId = "regex"; optional = true; usesDefaultFeatures = false; features = [ "std" ]; } { name = "serde"; packageId = "serde"; optional = true; } { name = "serde_json"; packageId = "serde_json"; optional = true; } { name = "sharded-slab"; packageId = "sharded-slab"; optional = true; } { name = "smallvec"; packageId = "smallvec"; optional = true; } { name = "thread_local"; packageId = "thread_local"; optional = true; } { name = "tracing"; packageId = "tracing"; optional = true; usesDefaultFeatures = false; features = [ "std" ]; } { name = "tracing-core"; packageId = "tracing-core"; } { name = "tracing-log"; packageId = "tracing-log"; optional = true; usesDefaultFeatures = false; features = [ "log-tracer" "std" ]; } { name = "tracing-serde"; packageId = "tracing-serde"; optional = true; } ]; devDependencies = [ { name = "regex"; packageId = "regex"; usesDefaultFeatures = false; features = [ "std" ]; } { name = "tracing"; packageId = "tracing"; } { name = "tracing-log"; packageId = "tracing-log"; } ]; features = { "ansi" = [ "fmt" "ansi_term" ]; "default" = [ "env-filter" "smallvec" "fmt" "ansi" "chrono" "tracing-log" "json" ]; "env-filter" = [ "matchers" "regex" "lazy_static" "tracing" ]; "fmt" = [ "registry" ]; "json" = [ "tracing-serde" "serde" "serde_json" ]; "registry" = [ "sharded-slab" "thread_local" ]; }; resolvedDefaultFeatures = [ "ansi" "ansi_term" "chrono" "default" "env-filter" "fmt" "json" "lazy_static" "matchers" "regex" "registry" "serde" "serde_json" "sharded-slab" "smallvec" "thread_local" "tracing" "tracing-log" "tracing-serde" ]; }; "typenum" = rec { crateName = "typenum"; version = "1.13.0"; edition = "2018"; sha256 = "01lbbspn4080yg8wp6y7q3xcqih1c1dmkkx4pwax4z1a9436k7w7"; build = "build/main.rs"; authors = [ "Paho Lurie-Gregg " "Andre Bogus " ]; features = { }; }; "unicode-segmentation" = rec { crateName = "unicode-segmentation"; version = "1.7.1"; edition = "2015"; sha256 = "15n736z0pbj30pj44jb9s9rjavzrmx8v8pzdgsl5yfmfwrxjw3dv"; 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" = rec { crateName = "unicode-xid"; version = "0.2.1"; edition = "2015"; sha256 = "0r6mknipyy9vpz8mwmxvkx65ff2ha1n2pxqjj6f46lcn8yrhpzpp"; authors = [ "erick.tryzelaar " "kwantam " ]; features = { }; resolvedDefaultFeatures = [ "default" ]; }; "uuid" = rec { crateName = "uuid"; version = "0.8.2"; edition = "2018"; sha256 = "1dy4ldcp7rnzjy56dxh7d2sgrcvn4q77y0a8r0a48946h66zjp5w"; authors = [ "Ashley Mannix" "Christopher Armstrong" "Dylan DPC" "Hunar Roop Kahlon" ]; dependencies = [ { name = "getrandom"; packageId = "getrandom 0.2.2"; optional = true; } { name = "serde"; packageId = "serde"; optional = true; usesDefaultFeatures = false; } ]; features = { "default" = [ "std" ]; "guid" = [ "winapi" ]; "stdweb" = [ "getrandom" "getrandom/js" ]; "v3" = [ "md5" ]; "v4" = [ "getrandom" ]; "v5" = [ "sha1" ]; "wasm-bindgen" = [ "getrandom" "getrandom/js" ]; }; resolvedDefaultFeatures = [ "default" "getrandom" "serde" "std" "v4" "wasm-bindgen" ]; }; "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 " ]; }; "wait-timeout" = rec { crateName = "wait-timeout"; version = "0.2.0"; edition = "2015"; crateBin = []; sha256 = "1xpkk0j5l9pfmjfh1pi0i89invlavfrd9av5xp0zhxgb29dhy84z"; authors = [ "Alex Crichton " ]; dependencies = [ { name = "libc"; packageId = "libc"; target = { target, features }: (target."unix" or false); } ]; }; "walkdir" = rec { crateName = "walkdir"; version = "2.3.2"; edition = "2018"; sha256 = "0mnszy33685v8y9js8mw6x2p3iddqs8vfj7n2dhqddnlbirz5340"; authors = [ "Andrew Gallant " ]; dependencies = [ { name = "same-file"; packageId = "same-file"; } { name = "winapi"; packageId = "winapi"; target = { target, features }: (target."windows" or false); features = [ "std" "winnt" ]; } { name = "winapi-util"; packageId = "winapi-util"; target = { target, features }: (target."windows" or false); } ]; }; "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.73"; edition = "2018"; sha256 = "1n93yq72c7bd2464gg48405yzgvwakwc0cqzz647864xcm4ha943"; authors = [ "The wasm-bindgen Developers" ]; dependencies = [ { name = "cfg-if"; packageId = "cfg-if 1.0.0"; } { 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.73"; edition = "2018"; sha256 = "1bkxxkmxfy182aav9qqkcq7mz48yxgmx61kdr8ak55fa24j64w5f"; 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 0.3.27" = rec { crateName = "wasm-bindgen-futures"; version = "0.3.27"; edition = "2018"; sha256 = "073p71skp91d9v2wczl6k7z9p0w25vn43br2v2g1ncbc6hvhnhl3"; authors = [ "The wasm-bindgen Developers" ]; dependencies = [ { name = "cfg-if"; packageId = "cfg-if 0.1.10"; } { name = "futures"; packageId = "futures 0.1.31"; } { 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_0_3" = [ "futures-util-preview" "futures-channel-preview" "lazy_static" ]; }; }; "wasm-bindgen-futures 0.4.23" = rec { crateName = "wasm-bindgen-futures"; version = "0.4.23"; edition = "2018"; sha256 = "1sk3zhmrwvz3aa9b63yz7ms04agd1dlqn5pjig0nmpi3mxkvgf41"; authors = [ "The wasm-bindgen Developers" ]; dependencies = [ { name = "cfg-if"; packageId = "cfg-if 1.0.0"; } { 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.73"; edition = "2018"; sha256 = "0vqgbnbnh6zs339v6g9w3j9idi8m3s1dws8rnkypn5rz8j8lswry"; 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.73"; edition = "2018"; sha256 = "0b0vcb8pvg03cmq9sg5b94a0p05bp1rc6m6dvc7qp9n813zkjdym"; 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.73"; edition = "2018"; sha256 = "12a4kq5wvy3znkqlqn6ib25ips1k9apxjpknpca3s8xacsp479fr"; authors = [ "The wasm-bindgen Developers" ]; }; "wasm-bindgen-test" = rec { crateName = "wasm-bindgen-test"; version = "0.3.23"; edition = "2018"; sha256 = "0ym6d8wc0qm655ikmgp5916jggb1qzsm8pl6hjym7ak3vqafjwp9"; authors = [ "The wasm-bindgen Developers" ]; dependencies = [ { name = "console_error_panic_hook"; packageId = "console_error_panic_hook"; } { name = "js-sys"; packageId = "js-sys"; } { name = "scoped-tls"; packageId = "scoped-tls"; } { name = "wasm-bindgen"; packageId = "wasm-bindgen"; } { name = "wasm-bindgen-futures"; packageId = "wasm-bindgen-futures 0.4.23"; } { name = "wasm-bindgen-test-macro"; packageId = "wasm-bindgen-test-macro"; } ]; }; "wasm-bindgen-test-macro" = rec { crateName = "wasm-bindgen-test-macro"; version = "0.3.23"; edition = "2018"; sha256 = "1dm8d13sn3hg5923m3gn95015zsg84ip5j15ky75h95zz6l56qga"; procMacro = true; authors = [ "The wasm-bindgen Developers" ]; dependencies = [ { name = "proc-macro2"; packageId = "proc-macro2"; } { name = "quote"; packageId = "quote"; } ]; }; "web-sys" = rec { crateName = "web-sys"; version = "0.3.50"; edition = "2018"; sha256 = "1gl1akzrzprc3hc16h1lcai2f3dm1xkr6cvd8ihqiv4g91zda1d9"; 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" ]; "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" ]; "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 = [ "CanvasRenderingContext2d" "Document" "DomRect" "DomRectReadOnly" "Element" "Event" "EventTarget" "HtmlCanvasElement" "HtmlElement" "MessageEvent" "Node" "Window" "Worker" "console" ]; }; "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 = [ "consoleapi" "errhandlingapi" "fileapi" "handleapi" "minwinbase" "minwindef" "namedpipeapi" "ntdef" "processenv" "processthreadsapi" "std" "synchapi" "timezoneapi" "winbase" "wincon" "winerror" "winnt" "winuser" ]; }; "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 " ]; }; }; # # 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 }: assert builtins.typeOf testCrateFlags == "list"; assert builtins.typeOf testInputs == "list"; 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; } ); 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 $f $testCrateFlags 2>&1 | tee -a $out 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 ? [ ] }: lib.makeOverridable ( { features , crateOverrides , runTests , testCrateFlags , testInputs }: 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; } else drv; in derivation ) { inherit features crateOverrides runTests testCrateFlags testInputs; }; /* 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; depWithResolvedFeatures = dependency: let packageId = dependency.packageId; features = dependencyFeatures expandedFeatures dependency; in { inherit packageId features; }; resolveDependencies = cache: path: dependencies: assert (builtins.isAttrs cache); assert (builtins.isList dependencies); let enabledDependencies = filterEnabledDependencies { inherit dependencies target; features = expandedFeatures; }; 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 ++ expandedFeatures); 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; /* 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) # }; }