2 # This file was @generated by crate2nix 0.10.0 with the command:
4 # See https://github.com/kolloch/crate2nix for more info.
7 , pkgs ? import nixpkgs { config = {}; }
10 , buildRustCrateForPkgs ? if buildRustCrate != null
11 then lib.warn "crate2nix: Passing `buildRustCrate` as argument to Cargo.nix is deprecated. If you don't customize `buildRustCrate`, replace `callPackage ./Cargo.nix {}` by `import ./Cargo.nix { inherit pkgs; }`, and if you need to customize `buildRustCrate`, use `buildRustCrateForPkgs` instead." (_: buildRustCrate)
12 else pkgs: pkgs.buildRustCrate
14 , buildRustCrate ? null
15 # This is used as the `crateOverrides` argument for `buildRustCrate`.
16 , defaultCrateOverrides ? pkgs.defaultCrateOverrides
17 # The features to enable for the root_crate or the workspace_members.
18 , rootFeatures ? [ "default" ]
19 # If true, throw errors instead of issueing deprecation warnings.
20 , strictDeprecation ? false
21 # Used for conditional compilation based on CPU feature detection.
23 # Whether to perform release builds: longer compile times, faster binaries.
25 # Additional crate2nix configuration if it exists.
27 ? lib.optionalAttrs (builtins.pathExists ./crate-config.nix) (pkgs.callPackage ./crate-config.nix {})
32 # "public" attributes that we attempt to keep stable with new versions of crate2nix.
38 # Use this attribute to refer to the derivation building your root crate package.
39 # You can override the features with rootCrate.build.override { features = [ "default" "feature1" ... ]; }.
40 build = internal.buildRustCrateWithFeatures {
44 # Debug support which might change between releases.
45 # File a bug if you depend on any for non-debug work!
46 debug = internal.debugCrate { inherit packageId; };
48 # Refer your crate build derivation by name here.
49 # You can override the features with
50 # workspaceMembers."${crateName}".build.override { features = [ "default" "feature1" ... ]; }.
54 build = internal.buildRustCrateWithFeatures {
58 # Debug support which might change between releases.
59 # File a bug if you depend on any for non-debug work!
60 debug = internal.debugCrate { inherit packageId; };
64 # A derivation that joins the outputs of all workspace members together.
65 allWorkspaceMembers = pkgs.symlinkJoin {
66 name = "all-workspace-members";
68 let members = builtins.attrValues workspaceMembers;
69 in builtins.map (m: m.build) members;
73 # "internal" ("private") attributes that may change in every new version of crate2nix.
77 # Build and dependency information for crates.
78 # Many of the fields are passed one-to-one to buildRustCrate.
81 # * `dependencies`/`buildDependencies`: similar to the corresponding fields for buildRustCrate.
82 # but with additional information which is used during dependency/feature resolution.
83 # * `resolvedDependencies`: the selected default features reported by cargo - only included for debugging.
84 # * `devDependencies` as of now not used by `buildRustCrate` but used to
85 # inject test dependencies into the build
89 crateName = "asn1-rs";
92 sha256 = "0czsk1nd4dx2k83f7jzkn8klx05wbmblkx1jh51i4c170akhbzrh";
94 "Pierre Chifflier <chifflier@wzdftpd.net>"
98 name = "asn1-rs-derive";
99 packageId = "asn1-rs-derive";
102 name = "asn1-rs-impl";
103 packageId = "asn1-rs-impl";
107 packageId = "displaydoc";
112 usesDefaultFeatures = false;
113 features = [ "std" ];
117 packageId = "num-traits";
120 name = "rusticata-macros";
121 packageId = "rusticata-macros";
125 packageId = "thiserror";
131 features = [ "macros" "parsing" "formatting" ];
135 "bigint" = [ "num-bigint" ];
136 "bits" = [ "bitvec" ];
137 "bitvec" = [ "dep:bitvec" ];
138 "cookie-factory" = [ "dep:cookie-factory" ];
139 "datetime" = [ "time" ];
140 "default" = [ "std" ];
141 "num-bigint" = [ "dep:num-bigint" ];
142 "serialize" = [ "cookie-factory" ];
143 "time" = [ "dep:time" ];
145 resolvedDefaultFeatures = [ "datetime" "default" "std" "time" ];
147 "asn1-rs-derive" = rec {
148 crateName = "asn1-rs-derive";
151 sha256 = "1gzf9vab06lk0zjvbr07axx64fndkng2s28bnj27fnwd548pb2yv";
154 "Pierre Chifflier <chifflier@wzdftpd.net>"
158 name = "proc-macro2";
159 packageId = "proc-macro2";
170 name = "synstructure";
171 packageId = "synstructure";
176 "asn1-rs-impl" = rec {
177 crateName = "asn1-rs-impl";
180 sha256 = "1va27bn7qxqp4wanzjlkagnynv6jnrhnwmcky2ahzb1r405p6xr7";
183 "Pierre Chifflier <chifflier@wzdftpd.net>"
187 name = "proc-macro2";
188 packageId = "proc-macro2";
201 "autocfg 0.1.7" = rec {
202 crateName = "autocfg";
205 sha256 = "1chwgimpx5z7xbag7krr9d8asxfqbh683qhgl9kn3hxk2l0djj8x";
207 "Josh Stone <cuviper@gmail.com>"
211 "autocfg 1.0.1" = rec {
212 crateName = "autocfg";
215 sha256 = "0jj6i9zn4gjl03kjvziqdji6rwx8ykz8zk2ngpc331z2g3fk3c6d";
217 "Josh Stone <cuviper@gmail.com>"
222 crateName = "base64";
225 sha256 = "1z82g23mbzjgijkpcrilc7nljpxpvpf7zxf6iyiapkgka2ngwkch";
227 "Alice Maz <alice@alicemaz.com>"
228 "Marshall Pierce <marshall@mpierce.org>"
231 "default" = [ "std" ];
233 resolvedDefaultFeatures = [ "default" "std" ];
236 crateName = "base64ct";
239 sha256 = "0p4was874qc90q2chm2i14m9mn8zmxjis8vaxihd6a2x4aqxkd76";
241 "RustCrypto Developers"
248 crateName = "bitflags";
251 sha256 = "12ki6w8gn1ldq7yz9y680llwk5gmrhrzszaa17g1sbrw2r2qvwxy";
253 "The Rust Project Developers"
256 "compiler_builtins" = [ "dep:compiler_builtins" ];
257 "core" = [ "dep:core" ];
258 "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
260 resolvedDefaultFeatures = [ "default" ];
266 sha256 = "08bmiyn7c3b0dgx20w6hr28d9jcq7cj78cchr84pc686sb2s41ik";
268 "Jack Lloyd <jack@randombit.net>"
273 packageId = "botan-sys";
281 "cstr_core" = [ "dep:cstr_core" ];
282 "no-std" = [ "cstr_core/alloc" ];
283 "vendored" = [ "botan-sys/vendored" ];
285 resolvedDefaultFeatures = [ "default" "vendored" ];
288 crateName = "botan-src";
289 version = "0.21703.0";
291 sha256 = "0s2ad9q84qsrllfsbj7hjhn7gr3hab9ng6lwzwqmimia6yvja8y8";
293 "Rodolphe Breard <rodolphe@what.tf>"
294 "Jack Lloyd <jack@randombit.net>"
299 crateName = "botan-sys";
302 sha256 = "1m11zblxfanrhl97j7z3ap7n17rr8j0rg91sr7f9j6y2bsniaz1x";
304 "Jack Lloyd <jack@randombit.net>"
312 buildDependencies = [
315 packageId = "botan-src";
320 "botan-src" = [ "dep:botan-src" ];
321 "vendored" = [ "botan-src" ];
323 resolvedDefaultFeatures = [ "botan-src" "default" "vendored" ];
326 crateName = "bumpalo";
329 sha256 = "1688dv6s0cbj72p9lmll8a02a85dzxvdw2is7pji490zmd35m954";
331 "Nick Fitzgerald <fitzgen@gmail.com>"
335 resolvedDefaultFeatures = [ "default" ];
338 crateName = "byteorder";
341 sha256 = "0456lv9xi1a5bcm32arknf33ikv76p3fr9yzki4lb2897p2qkh8l";
343 "Andrew Gallant <jamslam@gmail.com>"
346 "default" = [ "std" ];
354 sha256 = "1vl50h2qh0nh0iddzj6gd1pnxnxpvwmbfxc30578c1pajmxi7a92";
356 "Alex Crichton <alex@alexcrichton.com>"
359 "jobserver" = [ "dep:jobserver" ];
360 "parallel" = [ "jobserver" ];
364 crateName = "cfg-if";
367 sha256 = "1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds";
369 "Alex Crichton <alex@alexcrichton.com>"
372 "compiler_builtins" = [ "dep:compiler_builtins" ];
373 "core" = [ "dep:core" ];
374 "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
378 crateName = "const-oid";
381 sha256 = "12vv7csqqjj0x1l5mf51lgqiw76k5c3mb1yzfhfcqysks2j2lvwx";
383 "RustCrypto Developers"
388 "crypto-bigint" = rec {
389 crateName = "crypto-bigint";
392 sha256 = "00qckh65nzb7s7vd60wylw6alxf9g37xh31lirb1qw0l8fxx6fzq";
394 "RustCrypto Developers"
398 name = "generic-array";
399 packageId = "generic-array";
404 packageId = "rand_core";
409 packageId = "subtle";
410 usesDefaultFeatures = false;
414 "default" = [ "rand" ];
415 "generic-array" = [ "dep:generic-array" ];
416 "rand" = [ "rand_core" ];
417 "rand_core" = [ "dep:rand_core" ];
418 "rlp" = [ "dep:rlp" ];
419 "zeroize" = [ "dep:zeroize" ];
421 resolvedDefaultFeatures = [ "default" "generic-array" "rand" "rand_core" ];
427 sha256 = "0d8z0pbr87wgzqqb2jk5pvj0afzc6d3rb772ach6fijhg6yglrdk";
429 "Jorge Aparicio <jorge@japaric.io>"
433 "data-encoding" = rec {
434 crateName = "data-encoding";
437 sha256 = "0mvd8bjq5mq50fcf931cff57vwmbsvs1kpxynkzrshli98y3kqiy";
439 "Julien Cretin <git@ia0.eu>"
442 "default" = [ "std" ];
445 resolvedDefaultFeatures = [ "alloc" "default" "std" ];
451 sha256 = "1x4k0jln8va1657cghl40l6p7hyvr1ixz71v9cd6imwmgp51rdvr";
453 "RustCrypto Developers"
458 packageId = "const-oid";
462 name = "crypto-bigint";
463 packageId = "crypto-bigint";
465 features = [ "generic-array" ];
469 "bigint" = [ "crypto-bigint" ];
470 "const-oid" = [ "dep:const-oid" ];
471 "crypto-bigint" = [ "dep:crypto-bigint" ];
472 "der_derive" = [ "dep:der_derive" ];
473 "derive" = [ "der_derive" ];
474 "oid" = [ "const-oid" ];
477 resolvedDefaultFeatures = [ "alloc" "bigint" "const-oid" "crypto-bigint" "oid" "std" ];
480 crateName = "der-parser";
483 sha256 = "10kfa2gzl3x20mwgrd43cyi79xgkqxyzcyrh0xylv4apa33qlfgy";
485 "Pierre Chifflier <chifflier@wzdftpd.net>"
490 packageId = "asn1-rs";
494 packageId = "displaydoc";
495 usesDefaultFeatures = false;
503 packageId = "num-bigint";
508 packageId = "num-traits";
511 name = "rusticata-macros";
512 packageId = "rusticata-macros";
516 "bigint" = [ "num-bigint" ];
517 "cookie-factory" = [ "dep:cookie-factory" ];
518 "default" = [ "std" ];
519 "num-bigint" = [ "dep:num-bigint" ];
520 "serialize" = [ "std" "cookie-factory" ];
522 resolvedDefaultFeatures = [ "bigint" "default" "num-bigint" "std" ];
525 crateName = "digest";
528 sha256 = "0rmhvk33rgvd6ll71z8sng91a52rw14p0drjn1da0mqa138n1pfk";
530 "RustCrypto Developers"
534 name = "generic-array";
535 packageId = "generic-array";
539 "blobby" = [ "dep:blobby" ];
540 "dev" = [ "blobby" ];
543 resolvedDefaultFeatures = [ "alloc" "std" ];
546 crateName = "displaydoc";
549 sha256 = "11i8p5snlc1hs4g5q3wiyr75dn276l6kr0si5m7xmfa6y31mvy9v";
552 "Jane Lusby <jlusby@yaah.dev>"
556 name = "proc-macro2";
557 packageId = "proc-macro2";
569 "default" = [ "std" ];
571 resolvedDefaultFeatures = [ "default" "std" ];
573 "foreign-types" = rec {
574 crateName = "foreign-types";
577 sha256 = "1cgk0vyd7r45cj769jym4a6s7vwshvd0z4bqrb92q1fwibmkkwzn";
579 "Steven Fackler <sfackler@gmail.com>"
583 name = "foreign-types-shared";
584 packageId = "foreign-types-shared";
589 "foreign-types-shared" = rec {
590 crateName = "foreign-types-shared";
593 sha256 = "0jxgzd04ra4imjv8jgkmdq59kj8fsz6w4zxsbmlai34h26225c00";
595 "Steven Fackler <sfackler@gmail.com>"
599 "generic-array" = rec {
600 crateName = "generic-array";
603 sha256 = "00qqhls43bzvyb7s26iw6knvsz3mckbxl3rhaahvypzhqwzd6j7x";
604 libName = "generic_array";
606 "Bartłomiej Kamiński <fizyk20@gmail.com>"
607 "Aaron Trent <novacrazy@gmail.com>"
612 packageId = "typenum";
615 buildDependencies = [
617 name = "version_check";
618 packageId = "version_check";
622 "serde" = [ "dep:serde" ];
626 crateName = "getrandom";
629 sha256 = "0k0bdr1dyf4n9fvnkx4fmwxhv4hgnyf55gj86v4m69fln743g3a1";
631 "The Rand Project Developers"
636 packageId = "cfg-if";
641 usesDefaultFeatures = false;
642 target = { target, features }: (target."unix" or false);
647 target = { target, features }: (target."os" == "wasi");
651 "compiler_builtins" = [ "dep:compiler_builtins" ];
652 "core" = [ "dep:core" ];
653 "js" = [ "wasm-bindgen" "js-sys" ];
654 "js-sys" = [ "dep:js-sys" ];
655 "rustc-dep-of-std" = [ "compiler_builtins" "core" "libc/rustc-dep-of-std" "wasi/rustc-dep-of-std" ];
656 "wasm-bindgen" = [ "dep:wasm-bindgen" ];
658 resolvedDefaultFeatures = [ "std" ];
664 sha256 = "0d8wr2qf5b25a04xf10rz9r0pdbjdgb0zaw3xvf8k2sqcz1qzaqs";
666 "David Tolnay <dtolnay@gmail.com>"
671 crateName = "js-sys";
674 sha256 = "010g8jkj5avy3xd77i3cprjzzpfa6z9z2ay0fkllqmpx617c53x3";
676 "The wasm-bindgen Developers"
680 name = "wasm-bindgen";
681 packageId = "wasm-bindgen";
686 "lazy_static" = rec {
687 crateName = "lazy_static";
690 sha256 = "0in6ikhw8mgl33wjv6q6xfrb5b9jr16q8ygjy803fay4zcisvaz2";
692 "Marvin Löbel <loebel.marvin@gmail.com>"
702 "spin" = [ "dep:spin" ];
703 "spin_no_std" = [ "spin" ];
705 resolvedDefaultFeatures = [ "spin" "spin_no_std" ];
711 sha256 = "0x6sk17kv2fdsqxlm23bz9x1y79w90k7ylkflk44rgidhy4bspan";
713 "The Rust Project Developers"
716 "default" = [ "std" ];
717 "rustc-dep-of-std" = [ "align" "rustc-std-workspace-core" ];
718 "rustc-std-workspace-core" = [ "dep:rustc-std-workspace-core" ];
719 "use_std" = [ "std" ];
721 resolvedDefaultFeatures = [ "default" "std" ];
727 sha256 = "0akh56sh51adhagmk9l84dyrlz60gv8ri05xhr13i1b18czkpmy7";
729 "Jorge Aparicio <jorge@japaric.io>"
732 "musl-reference-tests" = [ "rand" ];
733 "rand" = [ "dep:rand" ];
735 resolvedDefaultFeatures = [ "default" ];
741 sha256 = "04175hv0v62shd82qydq58a48k3bjijmk54v38zgqlbxqkkbpfai";
743 "The Rust Project Developers"
748 packageId = "cfg-if";
752 "kv_unstable" = [ "value-bag" ];
753 "kv_unstable_serde" = [ "kv_unstable_std" "value-bag/serde" "serde" ];
754 "kv_unstable_std" = [ "std" "kv_unstable" "value-bag/error" ];
755 "kv_unstable_sval" = [ "kv_unstable" "value-bag/sval" "sval" ];
756 "serde" = [ "dep:serde" ];
757 "sval" = [ "dep:sval" ];
758 "value-bag" = [ "dep:value-bag" ];
762 crateName = "memchr";
765 sha256 = "0smq8xzd40njqpfzv5mghigj91fzlfrfg842iz8x0wqvw2dw731h";
767 "Andrew Gallant <jamslam@gmail.com>"
771 "compiler_builtins" = [ "dep:compiler_builtins" ];
772 "core" = [ "dep:core" ];
773 "default" = [ "std" ];
774 "libc" = [ "dep:libc" ];
775 "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
776 "use_std" = [ "std" ];
778 resolvedDefaultFeatures = [ "std" ];
780 "minimal-lexical" = rec {
781 crateName = "minimal-lexical";
784 sha256 = "16ppc5g84aijpri4jzv14rvcnslvlpphbszc7zzp6vfkddf4qdb8";
786 "Alex Huszagh <ahuszagh@gmail.com>"
789 "default" = [ "std" ];
791 resolvedDefaultFeatures = [ "std" ];
797 sha256 = "0281jdx0xcyhjgs1jkj9pii8py1clcpazg41bgz7d71qxzhi278v";
799 "contact@geoffroycouprie.com"
804 packageId = "memchr";
805 usesDefaultFeatures = false;
808 name = "minimal-lexical";
809 packageId = "minimal-lexical";
810 usesDefaultFeatures = false;
813 buildDependencies = [
815 name = "version_check";
816 packageId = "version_check";
820 "default" = [ "std" ];
821 "std" = [ "alloc" "memchr/std" "minimal-lexical/std" ];
823 resolvedDefaultFeatures = [ "alloc" "default" "std" ];
826 crateName = "num-bigint";
829 sha256 = "0py73wsa5j4izhd39nkqzqv260r0ma08vy30ky54ld3vkhlbcfpr";
831 "The Rust Project Developers"
835 name = "num-integer";
836 packageId = "num-integer";
837 usesDefaultFeatures = false;
838 features = [ "i128" ];
842 packageId = "num-traits";
843 usesDefaultFeatures = false;
844 features = [ "i128" ];
847 buildDependencies = [
850 packageId = "autocfg 1.0.1";
854 "arbitrary" = [ "dep:arbitrary" ];
855 "default" = [ "std" ];
856 "quickcheck" = [ "dep:quickcheck" ];
857 "rand" = [ "dep:rand" ];
858 "serde" = [ "dep:serde" ];
859 "std" = [ "num-integer/std" "num-traits/std" ];
861 resolvedDefaultFeatures = [ "default" "std" ];
863 "num-bigint-dig" = rec {
864 crateName = "num-bigint-dig";
867 sha256 = "1004mmipvc7pvaf3kf13i1nqh3vxf789bj72d8wl51y185aywis5";
869 "dignifiedquire <dignifiedquire@gmail.com>"
870 "The Rust Project Developers"
875 packageId = "byteorder";
876 usesDefaultFeatures = false;
879 name = "lazy_static";
880 packageId = "lazy_static";
881 usesDefaultFeatures = false;
882 features = [ "spin_no_std" ];
889 name = "num-integer";
890 packageId = "num-integer";
891 usesDefaultFeatures = false;
895 packageId = "num-iter";
896 usesDefaultFeatures = false;
900 packageId = "num-traits";
901 usesDefaultFeatures = false;
907 usesDefaultFeatures = false;
911 packageId = "smallvec";
912 usesDefaultFeatures = false;
916 packageId = "zeroize";
918 usesDefaultFeatures = false;
919 features = [ "zeroize_derive" ];
922 buildDependencies = [
925 packageId = "autocfg 0.1.7";
932 features = [ "small_rng" ];
936 "default" = [ "std" "i128" "u64_digit" ];
937 "i128" = [ "num-integer/i128" "num-traits/i128" ];
938 "prime" = [ "rand/std_rng" ];
939 "rand" = [ "dep:rand" ];
940 "serde" = [ "dep:serde" ];
941 "std" = [ "num-integer/std" "num-traits/std" "smallvec/write" "rand/std" "serde/std" ];
942 "zeroize" = [ "dep:zeroize" ];
944 resolvedDefaultFeatures = [ "i128" "prime" "rand" "u64_digit" "zeroize" ];
946 "num-integer" = rec {
947 crateName = "num-integer";
950 sha256 = "1nq152y3304as1iai95hqz8prqnc94lks1s7q05sfjdmcf56kk6j";
952 "The Rust Project Developers"
957 packageId = "num-traits";
958 usesDefaultFeatures = false;
961 buildDependencies = [
964 packageId = "autocfg 1.0.1";
968 "default" = [ "std" ];
969 "i128" = [ "num-traits/i128" ];
970 "std" = [ "num-traits/std" ];
972 resolvedDefaultFeatures = [ "i128" "std" ];
975 crateName = "num-iter";
978 sha256 = "0ndd9wb9qar50fdr16xm3i1zk6h2g9br56nml2n22kd56y1iq0mj";
980 "The Rust Project Developers"
984 name = "num-integer";
985 packageId = "num-integer";
986 usesDefaultFeatures = false;
990 packageId = "num-traits";
991 usesDefaultFeatures = false;
994 buildDependencies = [
997 packageId = "autocfg 1.0.1";
1001 "default" = [ "std" ];
1002 "i128" = [ "num-integer/i128" "num-traits/i128" ];
1003 "std" = [ "num-integer/std" "num-traits/std" ];
1006 "num-traits" = rec {
1007 crateName = "num-traits";
1010 sha256 = "144j176s2p76azy2ngk2vkdzgwdc0bc8c93jhki8c9fsbknb2r4s";
1012 "The Rust Project Developers"
1021 buildDependencies = [
1024 packageId = "autocfg 1.0.1";
1028 "default" = [ "std" ];
1029 "libm" = [ "dep:libm" ];
1031 resolvedDefaultFeatures = [ "default" "i128" "libm" "std" ];
1033 "num_threads" = rec {
1034 crateName = "num_threads";
1037 sha256 = "05gvsnv4k6d69iksz47i7fq1r61dj1k1nh4i8xrw7qlkcfx9kflp";
1039 "Jacob Pratt <open-source@jhpratt.dev>"
1045 target = { target, features }: ((target."os" == "macos") || (target."os" == "freebsd"));
1050 "oid-registry" = rec {
1051 crateName = "oid-registry";
1054 sha256 = "0akbah3j8231ayrp2l1y5d9zmvbvqcsj0sa6s6dz6h85z8bhgqiq";
1056 "Pierre Chifflier <chifflier@wzdftpd.net>"
1061 packageId = "asn1-rs";
1065 "crypto" = [ "kdf" "pkcs1" "pkcs7" "pkcs9" "pkcs12" "nist_algs" "x962" ];
1066 "default" = [ "registry" ];
1068 resolvedDefaultFeatures = [ "crypto" "default" "kdf" "nist_algs" "pkcs1" "pkcs12" "pkcs7" "pkcs9" "registry" "x509" "x962" ];
1071 crateName = "once_cell";
1074 sha256 = "1mfqhrsgi368x92bwnq3vi3p5nv0n1qlrn69gfflhvkfkxfm2cns";
1076 "Aleksey Kladov <aleksey.kladov@gmail.com>"
1079 "alloc" = [ "race" ];
1080 "atomic-polyfill" = [ "dep:atomic-polyfill" ];
1081 "default" = [ "std" ];
1082 "parking_lot" = [ "dep:parking_lot" ];
1083 "std" = [ "alloc" ];
1085 resolvedDefaultFeatures = [ "alloc" "default" "race" "std" ];
1088 crateName = "openssl";
1089 version = "0.10.38";
1091 sha256 = "15baqlphisr1f7ddq11jnrrzz4shdh35kwal24adyc2c4cif4yhc";
1093 "Steven Fackler <sfackler@gmail.com>"
1098 packageId = "bitflags";
1102 packageId = "cfg-if";
1105 name = "foreign-types";
1106 packageId = "foreign-types";
1114 packageId = "once_cell";
1117 name = "openssl-sys";
1118 packageId = "openssl-sys";
1123 "vendored" = [ "ffi/vendored" ];
1126 "openssl-sys" = rec {
1127 crateName = "openssl-sys";
1130 sha256 = "1jq3qbcvf16qn71yasdzw54b14n8nz98vr52l1gp60in72f10iky";
1131 build = "build/main.rs";
1133 "Alex Crichton <alex@alexcrichton.com>"
1134 "Steven Fackler <sfackler@gmail.com>"
1142 buildDependencies = [
1145 packageId = "autocfg 1.0.1";
1152 name = "pkg-config";
1153 packageId = "pkg-config";
1157 packageId = "vcpkg";
1158 target = {target, features}: (target."env" == "msvc");
1162 "openssl-src" = [ "dep:openssl-src" ];
1163 "vendored" = [ "openssl-src" ];
1170 sha256 = "0iqrvfnm71x9pvff39d5ajwn3gc9glxlv4d4h22max7342db18z9";
1172 "Jonathan Creekmore <jonathan@thecreekmores.org>"
1177 packageId = "base64";
1182 "pem-rfc7468" = rec {
1183 crateName = "pem-rfc7468";
1186 sha256 = "1m1c9jypydzabg4yscplmvff7pdcc8gg4cqg081hnlf03hxkmsc4";
1188 "RustCrypto Developers"
1193 packageId = "base64ct";
1197 "std" = [ "alloc" ];
1199 resolvedDefaultFeatures = [ "alloc" ];
1202 crateName = "pkcs1";
1205 sha256 = "0b2f1a0lf5h53zrjvcqbxzjhh89gcfa1myhf6z7w10ypg61fwsqi";
1207 "RustCrypto Developers"
1213 features = [ "bigint" "oid" ];
1216 name = "pem-rfc7468";
1217 packageId = "pem-rfc7468";
1222 packageId = "zeroize";
1224 usesDefaultFeatures = false;
1225 features = [ "alloc" ];
1229 "alloc" = [ "der/alloc" "zeroize" ];
1230 "pem" = [ "alloc" "pem-rfc7468/alloc" ];
1231 "pem-rfc7468" = [ "dep:pem-rfc7468" ];
1232 "zeroize" = [ "dep:zeroize" ];
1234 resolvedDefaultFeatures = [ "alloc" "pem" "pem-rfc7468" "std" "zeroize" ];
1237 crateName = "pkcs8";
1240 sha256 = "0iq46p6fa2b8xy6pj52zpmdy8ya3fg31dj4rc19x1fi69nvgjgpf";
1242 "RustCrypto Developers"
1248 features = [ "oid" ];
1251 name = "pem-rfc7468";
1252 packageId = "pem-rfc7468";
1257 packageId = "pkcs1";
1259 features = [ "alloc" ];
1267 packageId = "zeroize";
1269 usesDefaultFeatures = false;
1270 features = [ "alloc" ];
1274 "3des" = [ "encryption" "pkcs5/3des" ];
1275 "alloc" = [ "der/alloc" "zeroize" ];
1276 "des-insecure" = [ "encryption" "pkcs5/des-insecure" ];
1277 "encryption" = [ "alloc" "pkcs5/alloc" "pkcs5/pbes2" "rand_core" ];
1278 "pem" = [ "alloc" "pem-rfc7468/alloc" ];
1279 "pem-rfc7468" = [ "dep:pem-rfc7468" ];
1280 "pkcs1" = [ "dep:pkcs1" ];
1281 "pkcs5" = [ "dep:pkcs5" ];
1282 "rand_core" = [ "dep:rand_core" ];
1283 "sha1" = [ "encryption" "pkcs5/sha1" ];
1284 "std" = [ "alloc" "der/std" ];
1285 "zeroize" = [ "dep:zeroize" ];
1287 resolvedDefaultFeatures = [ "alloc" "pem" "pem-rfc7468" "pkcs1" "std" "zeroize" ];
1289 "pkg-config" = rec {
1290 crateName = "pkg-config";
1293 sha256 = "1ghcyjp5537r7qigmgl3dj62j01arlpddaq93a3i414v3iskz2aq";
1295 "Alex Crichton <alex@alexcrichton.com>"
1299 "ppv-lite86" = rec {
1300 crateName = "ppv-lite86";
1303 sha256 = "0wkqwnvnfcgqlrahphl45vdlgi2f1bs7nqcsalsllp1y4dp9x7zb";
1305 "The CryptoCorrosion Contributors"
1308 "default" = [ "std" ];
1310 resolvedDefaultFeatures = [ "simd" "std" ];
1312 "proc-macro2" = rec {
1313 crateName = "proc-macro2";
1316 sha256 = "0adh6gvs31x6pfwmygypmzrv1jc7kjq568vsqcfaxk7vhdc2sd67";
1318 "David Tolnay <dtolnay@gmail.com>"
1319 "Alex Crichton <alex@alexcrichton.com>"
1323 name = "unicode-xid";
1324 packageId = "unicode-xid";
1328 "default" = [ "proc-macro" ];
1330 resolvedDefaultFeatures = [ "default" "proc-macro" ];
1333 crateName = "quote";
1336 sha256 = "0id1q0875pvhkg0mlb5z8gzdm2g2rbbz76bfzhv331lrm2b3wkc6";
1338 "David Tolnay <dtolnay@gmail.com>"
1342 name = "proc-macro2";
1343 packageId = "proc-macro2";
1344 usesDefaultFeatures = false;
1348 "default" = [ "proc-macro" ];
1349 "proc-macro" = [ "proc-macro2/proc-macro" ];
1351 resolvedDefaultFeatures = [ "default" "proc-macro" ];
1357 sha256 = "1n5wska2fbfj4dsfz8mc0pd0dgjlrb6c9anpk5mwym345rip6x9f";
1359 "The Rand Project Developers"
1360 "The Rust Project Developers"
1367 usesDefaultFeatures = false;
1368 target = { target, features }: (target."unix" or false);
1371 name = "rand_chacha";
1372 packageId = "rand_chacha";
1374 usesDefaultFeatures = false;
1375 target = { target, features }: (!(target."os" == "emscripten"));
1379 packageId = "rand_core";
1383 packageId = "rand_hc";
1385 target = { target, features }: (target."os" == "emscripten");
1391 packageId = "rand_hc";
1395 "alloc" = [ "rand_core/alloc" ];
1396 "default" = [ "std" "std_rng" ];
1397 "getrandom" = [ "rand_core/getrandom" ];
1398 "libc" = [ "dep:libc" ];
1399 "log" = [ "dep:log" ];
1400 "packed_simd" = [ "dep:packed_simd" ];
1401 "rand_chacha" = [ "dep:rand_chacha" ];
1402 "rand_hc" = [ "dep:rand_hc" ];
1403 "serde" = [ "dep:serde" ];
1404 "serde1" = [ "serde" "rand_core/serde1" ];
1405 "simd_support" = [ "packed_simd" ];
1406 "std" = [ "rand_core/std" "rand_chacha/std" "alloc" "getrandom" "libc" ];
1407 "std_rng" = [ "rand_chacha" "rand_hc" ];
1409 resolvedDefaultFeatures = [ "alloc" "default" "getrandom" "libc" "rand_chacha" "rand_hc" "std" "std_rng" ];
1411 "rand_chacha" = rec {
1412 crateName = "rand_chacha";
1415 sha256 = "123x2adin558xbhvqb8w4f6syjsdkmqff8cxwhmjacpsl1ihmhg6";
1417 "The Rand Project Developers"
1418 "The Rust Project Developers"
1419 "The CryptoCorrosion Contributors"
1423 name = "ppv-lite86";
1424 packageId = "ppv-lite86";
1425 usesDefaultFeatures = false;
1426 features = [ "simd" ];
1430 packageId = "rand_core";
1434 "default" = [ "std" ];
1435 "serde" = [ "dep:serde" ];
1436 "serde1" = [ "serde" ];
1437 "std" = [ "ppv-lite86/std" ];
1439 resolvedDefaultFeatures = [ "std" ];
1442 crateName = "rand_core";
1445 sha256 = "1rxlxc3bpzgwphcg9c9yasvv9idipcg2z2y4j0vlb52jyl418kyk";
1447 "The Rand Project Developers"
1448 "The Rust Project Developers"
1453 packageId = "getrandom";
1458 "getrandom" = [ "dep:getrandom" ];
1459 "serde" = [ "dep:serde" ];
1460 "serde1" = [ "serde" ];
1461 "std" = [ "alloc" "getrandom" "getrandom/std" ];
1463 resolvedDefaultFeatures = [ "alloc" "getrandom" "std" ];
1466 crateName = "rand_hc";
1469 sha256 = "1rwpykyvhkxs4jvqdja3mzp9dqaqamzn113cxaigs9z2dmcry7nm";
1471 "The Rand Project Developers"
1476 packageId = "rand_core";
1482 crateName = "rcgen";
1486 { name = "rcgen"; path = "src/main.rs"; }
1488 sha256 = "0ppwfl9g504x2qwk7m7mag8c3l70w9mcfha93013nlzqdlw2vynp";
1490 "est31 <MTest31@outlook.com>"
1505 usesDefaultFeatures = false;
1508 name = "x509-parser";
1509 packageId = "x509-parser";
1511 features = [ "verify" ];
1515 packageId = "yasna";
1516 features = [ "time" "std" ];
1520 packageId = "zeroize";
1527 packageId = "botan";
1528 features = [ "vendored" ];
1532 packageId = "openssl";
1544 packageId = "webpki";
1545 features = [ "std" ];
1548 name = "x509-parser";
1549 packageId = "x509-parser";
1550 features = [ "verify" ];
1554 "default" = [ "pem" ];
1555 "pem" = [ "dep:pem" ];
1556 "x509-parser" = [ "dep:x509-parser" ];
1557 "zeroize" = [ "dep:zeroize" ];
1559 resolvedDefaultFeatures = [ "default" "pem" "x509-parser" "zeroize" ];
1563 version = "0.16.20";
1565 sha256 = "1z682xp7v38ayq9g9nkbhhfpj6ygralmlx7wdmsfv8rnw99cylrh";
1567 "Brian Smith <brian@briansmith.org>"
1573 usesDefaultFeatures = false;
1574 target = { target, features }: ((target."os" == "android") || (target."os" == "linux"));
1578 packageId = "once_cell";
1580 usesDefaultFeatures = false;
1581 target = { target, features }: ((target."os" == "android") || (target."os" == "linux"));
1582 features = [ "std" ];
1586 packageId = "once_cell";
1587 usesDefaultFeatures = false;
1588 target = { target, features }: ((target."os" == "dragonfly") || (target."os" == "freebsd") || (target."os" == "illumos") || (target."os" == "netbsd") || (target."os" == "openbsd") || (target."os" == "solaris"));
1589 features = [ "std" ];
1594 usesDefaultFeatures = false;
1595 target = { target, features }: ((target."arch" == "x86") || (target."arch" == "x86_64") || (((target."arch" == "aarch64") || (target."arch" == "arm")) && ((target."os" == "android") || (target."os" == "fuchsia") || (target."os" == "linux"))));
1599 packageId = "untrusted";
1603 packageId = "web-sys";
1604 usesDefaultFeatures = false;
1605 target = { target, features }: ((target."arch" == "wasm32") && (target."vendor" == "unknown") && (target."os" == "unknown") && (target."env" == ""));
1606 features = [ "Crypto" "Window" ];
1610 packageId = "winapi";
1611 usesDefaultFeatures = false;
1612 target = { target, features }: (target."os" == "windows");
1613 features = [ "ntsecapi" "wtypesbase" ];
1616 buildDependencies = [
1620 usesDefaultFeatures = false;
1627 usesDefaultFeatures = false;
1628 target = {target, features}: ((target."unix" or false) || (target."windows" or false));
1632 "default" = [ "alloc" "dev_urandom_fallback" ];
1633 "dev_urandom_fallback" = [ "once_cell" ];
1634 "once_cell" = [ "dep:once_cell" ];
1635 "std" = [ "alloc" ];
1637 resolvedDefaultFeatures = [ "alloc" "default" "dev_urandom_fallback" "once_cell" ];
1643 sha256 = "039676a4mj0875phdi7vc0bd37hv84dh0dql6fmk8dl2w81jcp70";
1645 "RustCrypto Developers"
1646 "dignifiedquire <dignifiedquire@gmail.com>"
1651 packageId = "byteorder";
1652 usesDefaultFeatures = false;
1656 packageId = "digest";
1657 usesDefaultFeatures = false;
1660 name = "lazy_static";
1661 packageId = "lazy_static";
1662 features = [ "spin_no_std" ];
1665 name = "num-bigint-dig";
1666 packageId = "num-bigint-dig";
1667 rename = "num-bigint";
1668 usesDefaultFeatures = false;
1669 features = [ "i128" "u64_digit" "prime" "zeroize" ];
1672 name = "num-integer";
1673 packageId = "num-integer";
1674 usesDefaultFeatures = false;
1678 packageId = "num-iter";
1679 usesDefaultFeatures = false;
1682 name = "num-traits";
1683 packageId = "num-traits";
1684 usesDefaultFeatures = false;
1685 features = [ "libm" ];
1689 packageId = "pkcs1";
1690 usesDefaultFeatures = false;
1694 packageId = "pkcs8";
1695 usesDefaultFeatures = false;
1700 usesDefaultFeatures = false;
1701 features = [ "std_rng" ];
1705 packageId = "subtle";
1706 usesDefaultFeatures = false;
1710 packageId = "zeroize";
1711 features = [ "alloc" "zeroize_derive" ];
1715 "alloc" = [ "digest/alloc" "pkcs1/alloc" "pkcs8/alloc" "pkcs8/pkcs1" ];
1716 "default" = [ "std" "pem" ];
1717 "nightly" = [ "subtle/nightly" "num-bigint/nightly" ];
1718 "pem" = [ "alloc" "pkcs1/pem" "pkcs8/pem" ];
1719 "pkcs5" = [ "pkcs8/encryption" ];
1720 "serde" = [ "num-bigint/serde" "serde_crate" ];
1721 "serde_crate" = [ "dep:serde_crate" ];
1722 "std" = [ "alloc" "digest/std" "pkcs1/std" "pkcs8/std" "rand/std" ];
1724 resolvedDefaultFeatures = [ "alloc" "default" "pem" "std" ];
1726 "rusticata-macros" = rec {
1727 crateName = "rusticata-macros";
1730 sha256 = "03dmfxhgwzpm1360iwcpcg3y18ddgya0i0hc599am212pdvj7ib5";
1732 "Pierre Chifflier <chifflier@wzdftpd.net>"
1738 usesDefaultFeatures = false;
1739 features = [ "std" ];
1745 crateName = "smallvec";
1748 sha256 = "10zf4fn63p2d6sx8qap3jvyarcfw563308x3431hd4c34r35gpgj";
1750 "The Servo Project Developers"
1753 "arbitrary" = [ "dep:arbitrary" ];
1754 "const_new" = [ "const_generics" ];
1755 "serde" = [ "dep:serde" ];
1762 sha256 = "0b84m6dbzrwf2kxylnw82d3dr8w06av7rfkr8s85fb5f43rwyqvf";
1764 "Mathijs van de Nes <git@mathijs.vd-nes.nl>"
1765 "John Ericson <git@JohnEricson.me>"
1773 sha256 = "0ckgkcg6db5y94dqhmyikgn8yrsah6pyf4j197hv1c51bp0s00aw";
1775 "RustCrypto Developers"
1781 features = [ "oid" ];
1785 "std" = [ "der/std" ];
1789 crateName = "subtle";
1792 sha256 = "00b6jzh9gzb0h9n25g06nqr90z3xzqppfhhb260s1hjhh4pg7pkb";
1794 "Isis Lovecruft <isis@patternsinthevoid.net>"
1795 "Henry de Valence <hdevalence@hdevalence.ca>"
1798 "default" = [ "std" "i128" ];
1805 sha256 = "0sqwa4nqxzm89nj8xd8sk4iz0hbrw3mb17b6hyc2w2d0zzsb6rca";
1807 "David Tolnay <dtolnay@gmail.com>"
1811 name = "proc-macro2";
1812 packageId = "proc-macro2";
1813 usesDefaultFeatures = false;
1817 packageId = "quote";
1819 usesDefaultFeatures = false;
1822 name = "unicode-xid";
1823 packageId = "unicode-xid";
1827 "default" = [ "derive" "parsing" "printing" "clone-impls" "proc-macro" ];
1828 "printing" = [ "quote" ];
1829 "proc-macro" = [ "proc-macro2/proc-macro" "quote/proc-macro" ];
1830 "quote" = [ "dep:quote" ];
1831 "test" = [ "syn-test-suite/all-features" ];
1833 resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "extra-traits" "full" "parsing" "printing" "proc-macro" "quote" "visit" ];
1835 "synstructure" = rec {
1836 crateName = "synstructure";
1839 sha256 = "03r1lydbf3japnlpc4wka7y90pmz1i0danaj3f9a7b431akdlszk";
1841 "Nika Layzell <nika@thelayzells.com>"
1845 name = "proc-macro2";
1846 packageId = "proc-macro2";
1847 usesDefaultFeatures = false;
1851 packageId = "quote";
1852 usesDefaultFeatures = false;
1857 usesDefaultFeatures = false;
1858 features = [ "derive" "parsing" "printing" "clone-impls" "visit" "extra-traits" ];
1861 name = "unicode-xid";
1862 packageId = "unicode-xid";
1866 "default" = [ "proc-macro" ];
1867 "proc-macro" = [ "proc-macro2/proc-macro" "syn/proc-macro" "quote/proc-macro" ];
1869 resolvedDefaultFeatures = [ "default" "proc-macro" ];
1872 crateName = "thiserror";
1875 sha256 = "05y4wm29ck8flwq5k1q6nhwh00a3b30cz3xr0qvnbwad5vjsnjw5";
1877 "David Tolnay <dtolnay@gmail.com>"
1881 name = "thiserror-impl";
1882 packageId = "thiserror-impl";
1887 "thiserror-impl" = rec {
1888 crateName = "thiserror-impl";
1891 sha256 = "0jviwmvx6wzawsj6c9msic7h419wmsbjagl9dzhpydkzc8zzscma";
1894 "David Tolnay <dtolnay@gmail.com>"
1898 name = "proc-macro2";
1899 packageId = "proc-macro2";
1903 packageId = "quote";
1916 sha256 = "0gbmwlkj15dfhbqvxlzji1ffc1lidblpgg1q3b3378hgyfcbqk00";
1918 "Jacob Pratt <open-source@jhpratt.dev>"
1930 target = { target, features }: (target."family" == "unix");
1933 name = "num_threads";
1934 packageId = "num_threads";
1935 target = { target, features }: (target."family" == "unix");
1938 name = "time-macros";
1939 packageId = "time-macros";
1944 "default" = [ "std" ];
1945 "formatting" = [ "itoa" "std" ];
1946 "itoa" = [ "dep:itoa" ];
1947 "large-dates" = [ "time-macros/large-dates" ];
1948 "local-offset" = [ "std" ];
1949 "macros" = [ "time-macros" ];
1950 "quickcheck" = [ "quickcheck-dep" "alloc" ];
1951 "quickcheck-dep" = [ "dep:quickcheck-dep" ];
1952 "rand" = [ "dep:rand" ];
1953 "serde" = [ "dep:serde" ];
1954 "serde-human-readable" = [ "serde" "formatting" "parsing" ];
1955 "serde-well-known" = [ "serde/alloc" "formatting" "parsing" ];
1956 "std" = [ "alloc" ];
1957 "time-macros" = [ "dep:time-macros" ];
1959 resolvedDefaultFeatures = [ "alloc" "default" "formatting" "itoa" "macros" "parsing" "std" "time-macros" ];
1961 "time-macros" = rec {
1962 crateName = "time-macros";
1965 sha256 = "1mj7pv8y9j2csrh1l8aabras36pgysbnfy18330srh4g8sihrsr5";
1968 "Jacob Pratt <open-source@jhpratt.dev>"
1975 crateName = "typenum";
1978 sha256 = "11yrvz1vd43gqv738yw1v75rzngjbs7iwcgzjy3cq5ywkv2imy6w";
1979 build = "build/main.rs";
1981 "Paho Lurie-Gregg <paho@paholg.com>"
1982 "Andre Bogus <bogusandre@gmail.com>"
1985 "scale-info" = [ "dep:scale-info" ];
1986 "scale_info" = [ "scale-info/derive" ];
1989 "unicode-xid" = rec {
1990 crateName = "unicode-xid";
1993 sha256 = "1wrkgcw557v311dkdb6n2hrix9dm2qdsb1zpw7pn79l03zb85jwc";
1995 "erick.tryzelaar <erick.tryzelaar@gmail.com>"
1996 "kwantam <kwantam@gmail.com>"
1997 "Manish Goregaokar <manishsmail@gmail.com>"
2001 resolvedDefaultFeatures = [ "default" ];
2004 crateName = "untrusted";
2007 sha256 = "0jkbqaj9d3v5a91pp3wp9mffvng1nhycx6sh4qkdd9qyr62ccmm1";
2008 libPath = "src/untrusted.rs";
2010 "Brian Smith <brian@briansmith.org>"
2015 crateName = "vcpkg";
2018 sha256 = "09i4nf5y8lig6xgj3f7fyrvzd3nlaw4znrihw8psidvv5yk4xkdc";
2020 "Jim McGrath <jimmc2@gmail.com>"
2024 "version_check" = rec {
2025 crateName = "version_check";
2028 sha256 = "0gs8grwdlgh0xq660d7wr80x14vxbizmd8dbp29p2pdncx8lp1s9";
2030 "Sergio Benitez <sb@sergio.bz>"
2036 version = "0.10.2+wasi-snapshot-preview1";
2038 sha256 = "1ii7nff4y1mpcrxzzvbpgxm7a1nn3szjf1n21jnx37c2g6dbsvzx";
2040 "The Cranelift Project Developers"
2043 "compiler_builtins" = [ "dep:compiler_builtins" ];
2044 "core" = [ "dep:core" ];
2045 "default" = [ "std" ];
2046 "rustc-dep-of-std" = [ "compiler_builtins" "core" "rustc-std-workspace-alloc" ];
2047 "rustc-std-workspace-alloc" = [ "dep:rustc-std-workspace-alloc" ];
2049 resolvedDefaultFeatures = [ "default" "std" ];
2051 "wasm-bindgen" = rec {
2052 crateName = "wasm-bindgen";
2055 sha256 = "01kc4lj2vlf0ra2w63izrgdlv8p6f8p15086hhyqln6q4dsazw95";
2057 "The wasm-bindgen Developers"
2062 packageId = "cfg-if";
2065 name = "wasm-bindgen-macro";
2066 packageId = "wasm-bindgen-macro";
2070 "default" = [ "spans" "std" ];
2071 "enable-interning" = [ "std" ];
2072 "serde" = [ "dep:serde" ];
2073 "serde-serialize" = [ "serde" "serde_json" "std" ];
2074 "serde_json" = [ "dep:serde_json" ];
2075 "spans" = [ "wasm-bindgen-macro/spans" ];
2076 "strict-macro" = [ "wasm-bindgen-macro/strict-macro" ];
2077 "xxx_debug_only_print_generated_code" = [ "wasm-bindgen-macro/xxx_debug_only_print_generated_code" ];
2079 resolvedDefaultFeatures = [ "default" "spans" "std" ];
2081 "wasm-bindgen-backend" = rec {
2082 crateName = "wasm-bindgen-backend";
2085 sha256 = "1jpdrl5jj01961jxhmvj7v25ws928fyfj8ms7izifnhg0ggw08cb";
2087 "The wasm-bindgen Developers"
2092 packageId = "bumpalo";
2095 name = "lazy_static";
2096 packageId = "lazy_static";
2103 name = "proc-macro2";
2104 packageId = "proc-macro2";
2108 packageId = "quote";
2113 features = [ "full" ];
2116 name = "wasm-bindgen-shared";
2117 packageId = "wasm-bindgen-shared";
2121 "extra-traits" = [ "syn/extra-traits" ];
2123 resolvedDefaultFeatures = [ "spans" ];
2125 "wasm-bindgen-macro" = rec {
2126 crateName = "wasm-bindgen-macro";
2129 sha256 = "00gdh0dlf2r77mxwh08q0z01vz2z7mvrllmj4gjjx9a0kvb06hig";
2132 "The wasm-bindgen Developers"
2137 packageId = "quote";
2140 name = "wasm-bindgen-macro-support";
2141 packageId = "wasm-bindgen-macro-support";
2145 "spans" = [ "wasm-bindgen-macro-support/spans" ];
2146 "strict-macro" = [ "wasm-bindgen-macro-support/strict-macro" ];
2148 resolvedDefaultFeatures = [ "spans" ];
2150 "wasm-bindgen-macro-support" = rec {
2151 crateName = "wasm-bindgen-macro-support";
2154 sha256 = "1g1fjqvrkrf3j20z8nxsf60cypxg9dfvpbachl2b53908q6s7a5z";
2156 "The wasm-bindgen Developers"
2160 name = "proc-macro2";
2161 packageId = "proc-macro2";
2165 packageId = "quote";
2170 features = [ "visit" "full" ];
2173 name = "wasm-bindgen-backend";
2174 packageId = "wasm-bindgen-backend";
2177 name = "wasm-bindgen-shared";
2178 packageId = "wasm-bindgen-shared";
2182 "extra-traits" = [ "syn/extra-traits" ];
2183 "spans" = [ "wasm-bindgen-backend/spans" ];
2185 resolvedDefaultFeatures = [ "spans" ];
2187 "wasm-bindgen-shared" = rec {
2188 crateName = "wasm-bindgen-shared";
2191 sha256 = "18h67l9b9jn06iw9r2p7bh9i0brh24lilcp4f26f4f24bh1qv59x";
2193 "The wasm-bindgen Developers"
2198 crateName = "web-sys";
2201 sha256 = "1sxqmwq773ss5m6vz7z95fdm6bqlix0s2awsy0j5gllxy8cv6q60";
2203 "The wasm-bindgen Developers"
2208 packageId = "js-sys";
2211 name = "wasm-bindgen";
2212 packageId = "wasm-bindgen";
2216 "AbortSignal" = [ "EventTarget" ];
2217 "AnalyserNode" = [ "AudioNode" "EventTarget" ];
2218 "Animation" = [ "EventTarget" ];
2219 "AnimationEvent" = [ "Event" ];
2220 "AnimationPlaybackEvent" = [ "Event" ];
2221 "Attr" = [ "EventTarget" "Node" ];
2222 "AudioBufferSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ];
2223 "AudioContext" = [ "BaseAudioContext" "EventTarget" ];
2224 "AudioDestinationNode" = [ "AudioNode" "EventTarget" ];
2225 "AudioNode" = [ "EventTarget" ];
2226 "AudioProcessingEvent" = [ "Event" ];
2227 "AudioScheduledSourceNode" = [ "AudioNode" "EventTarget" ];
2228 "AudioStreamTrack" = [ "EventTarget" "MediaStreamTrack" ];
2229 "AudioTrackList" = [ "EventTarget" ];
2230 "AudioWorklet" = [ "Worklet" ];
2231 "AudioWorkletGlobalScope" = [ "WorkletGlobalScope" ];
2232 "AudioWorkletNode" = [ "AudioNode" "EventTarget" ];
2233 "AuthenticatorAssertionResponse" = [ "AuthenticatorResponse" ];
2234 "AuthenticatorAttestationResponse" = [ "AuthenticatorResponse" ];
2235 "BaseAudioContext" = [ "EventTarget" ];
2236 "BatteryManager" = [ "EventTarget" ];
2237 "BeforeUnloadEvent" = [ "Event" ];
2238 "BiquadFilterNode" = [ "AudioNode" "EventTarget" ];
2239 "BlobEvent" = [ "Event" ];
2240 "Bluetooth" = [ "EventTarget" ];
2241 "BluetoothAdvertisingEvent" = [ "Event" ];
2242 "BluetoothDevice" = [ "EventTarget" ];
2243 "BluetoothPermissionResult" = [ "EventTarget" "PermissionStatus" ];
2244 "BluetoothRemoteGattCharacteristic" = [ "EventTarget" ];
2245 "BluetoothRemoteGattService" = [ "EventTarget" ];
2246 "BroadcastChannel" = [ "EventTarget" ];
2247 "CanvasCaptureMediaStream" = [ "EventTarget" "MediaStream" ];
2248 "CdataSection" = [ "CharacterData" "EventTarget" "Node" "Text" ];
2249 "ChannelMergerNode" = [ "AudioNode" "EventTarget" ];
2250 "ChannelSplitterNode" = [ "AudioNode" "EventTarget" ];
2251 "CharacterData" = [ "EventTarget" "Node" ];
2252 "ChromeWorker" = [ "EventTarget" "Worker" ];
2253 "Clipboard" = [ "EventTarget" ];
2254 "ClipboardEvent" = [ "Event" ];
2255 "CloseEvent" = [ "Event" ];
2256 "Comment" = [ "CharacterData" "EventTarget" "Node" ];
2257 "CompositionEvent" = [ "Event" "UiEvent" ];
2258 "ConstantSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ];
2259 "ConvolverNode" = [ "AudioNode" "EventTarget" ];
2260 "CssAnimation" = [ "Animation" "EventTarget" ];
2261 "CssConditionRule" = [ "CssGroupingRule" "CssRule" ];
2262 "CssCounterStyleRule" = [ "CssRule" ];
2263 "CssFontFaceRule" = [ "CssRule" ];
2264 "CssFontFeatureValuesRule" = [ "CssRule" ];
2265 "CssGroupingRule" = [ "CssRule" ];
2266 "CssImportRule" = [ "CssRule" ];
2267 "CssKeyframeRule" = [ "CssRule" ];
2268 "CssKeyframesRule" = [ "CssRule" ];
2269 "CssMediaRule" = [ "CssConditionRule" "CssGroupingRule" "CssRule" ];
2270 "CssNamespaceRule" = [ "CssRule" ];
2271 "CssPageRule" = [ "CssRule" ];
2272 "CssStyleRule" = [ "CssRule" ];
2273 "CssStyleSheet" = [ "StyleSheet" ];
2274 "CssSupportsRule" = [ "CssConditionRule" "CssGroupingRule" "CssRule" ];
2275 "CssTransition" = [ "Animation" "EventTarget" ];
2276 "CustomEvent" = [ "Event" ];
2277 "DedicatedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ];
2278 "DelayNode" = [ "AudioNode" "EventTarget" ];
2279 "DeviceLightEvent" = [ "Event" ];
2280 "DeviceMotionEvent" = [ "Event" ];
2281 "DeviceOrientationEvent" = [ "Event" ];
2282 "DeviceProximityEvent" = [ "Event" ];
2283 "Document" = [ "EventTarget" "Node" ];
2284 "DocumentFragment" = [ "EventTarget" "Node" ];
2285 "DocumentTimeline" = [ "AnimationTimeline" ];
2286 "DocumentType" = [ "EventTarget" "Node" ];
2287 "DomMatrix" = [ "DomMatrixReadOnly" ];
2288 "DomPoint" = [ "DomPointReadOnly" ];
2289 "DomRect" = [ "DomRectReadOnly" ];
2290 "DomRequest" = [ "EventTarget" ];
2291 "DragEvent" = [ "Event" "MouseEvent" "UiEvent" ];
2292 "DynamicsCompressorNode" = [ "AudioNode" "EventTarget" ];
2293 "Element" = [ "EventTarget" "Node" ];
2294 "ErrorEvent" = [ "Event" ];
2295 "EventSource" = [ "EventTarget" ];
2296 "ExtendableEvent" = [ "Event" ];
2297 "ExtendableMessageEvent" = [ "Event" "ExtendableEvent" ];
2298 "FetchEvent" = [ "Event" "ExtendableEvent" ];
2299 "FetchObserver" = [ "EventTarget" ];
2300 "File" = [ "Blob" ];
2301 "FileReader" = [ "EventTarget" ];
2302 "FileSystemDirectoryEntry" = [ "FileSystemEntry" ];
2303 "FileSystemFileEntry" = [ "FileSystemEntry" ];
2304 "FocusEvent" = [ "Event" "UiEvent" ];
2305 "FontFaceSet" = [ "EventTarget" ];
2306 "FontFaceSetLoadEvent" = [ "Event" ];
2307 "GainNode" = [ "AudioNode" "EventTarget" ];
2308 "GamepadAxisMoveEvent" = [ "Event" "GamepadEvent" ];
2309 "GamepadButtonEvent" = [ "Event" "GamepadEvent" ];
2310 "GamepadEvent" = [ "Event" ];
2311 "GpuDevice" = [ "EventTarget" ];
2312 "GpuUncapturedErrorEvent" = [ "Event" ];
2313 "HashChangeEvent" = [ "Event" ];
2314 "Hid" = [ "EventTarget" ];
2315 "HidConnectionEvent" = [ "Event" ];
2316 "HidDevice" = [ "EventTarget" ];
2317 "HidInputReportEvent" = [ "Event" ];
2318 "HtmlAnchorElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2319 "HtmlAreaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2320 "HtmlAudioElement" = [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ];
2321 "HtmlBaseElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2322 "HtmlBodyElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2323 "HtmlBrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2324 "HtmlButtonElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2325 "HtmlCanvasElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2326 "HtmlDListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2327 "HtmlDataElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2328 "HtmlDataListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2329 "HtmlDetailsElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2330 "HtmlDialogElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2331 "HtmlDirectoryElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2332 "HtmlDivElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2333 "HtmlDocument" = [ "Document" "EventTarget" "Node" ];
2334 "HtmlElement" = [ "Element" "EventTarget" "Node" ];
2335 "HtmlEmbedElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2336 "HtmlFieldSetElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2337 "HtmlFontElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2338 "HtmlFormControlsCollection" = [ "HtmlCollection" ];
2339 "HtmlFormElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2340 "HtmlFrameElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2341 "HtmlFrameSetElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2342 "HtmlHeadElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2343 "HtmlHeadingElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2344 "HtmlHrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2345 "HtmlHtmlElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2346 "HtmlIFrameElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2347 "HtmlImageElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2348 "HtmlInputElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2349 "HtmlLabelElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2350 "HtmlLegendElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2351 "HtmlLiElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2352 "HtmlLinkElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2353 "HtmlMapElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2354 "HtmlMediaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2355 "HtmlMenuElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2356 "HtmlMenuItemElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2357 "HtmlMetaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2358 "HtmlMeterElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2359 "HtmlModElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2360 "HtmlOListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2361 "HtmlObjectElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2362 "HtmlOptGroupElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2363 "HtmlOptionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2364 "HtmlOptionsCollection" = [ "HtmlCollection" ];
2365 "HtmlOutputElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2366 "HtmlParagraphElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2367 "HtmlParamElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2368 "HtmlPictureElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2369 "HtmlPreElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2370 "HtmlProgressElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2371 "HtmlQuoteElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2372 "HtmlScriptElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2373 "HtmlSelectElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2374 "HtmlSlotElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2375 "HtmlSourceElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2376 "HtmlSpanElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2377 "HtmlStyleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2378 "HtmlTableCaptionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2379 "HtmlTableCellElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2380 "HtmlTableColElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2381 "HtmlTableElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2382 "HtmlTableRowElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2383 "HtmlTableSectionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2384 "HtmlTemplateElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2385 "HtmlTextAreaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2386 "HtmlTimeElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2387 "HtmlTitleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2388 "HtmlTrackElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2389 "HtmlUListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2390 "HtmlUnknownElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
2391 "HtmlVideoElement" = [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ];
2392 "IdbCursorWithValue" = [ "IdbCursor" ];
2393 "IdbDatabase" = [ "EventTarget" ];
2394 "IdbFileHandle" = [ "EventTarget" ];
2395 "IdbFileRequest" = [ "DomRequest" "EventTarget" ];
2396 "IdbLocaleAwareKeyRange" = [ "IdbKeyRange" ];
2397 "IdbMutableFile" = [ "EventTarget" ];
2398 "IdbOpenDbRequest" = [ "EventTarget" "IdbRequest" ];
2399 "IdbRequest" = [ "EventTarget" ];
2400 "IdbTransaction" = [ "EventTarget" ];
2401 "IdbVersionChangeEvent" = [ "Event" ];
2402 "IirFilterNode" = [ "AudioNode" "EventTarget" ];
2403 "ImageCaptureErrorEvent" = [ "Event" ];
2404 "InputEvent" = [ "Event" "UiEvent" ];
2405 "KeyboardEvent" = [ "Event" "UiEvent" ];
2406 "KeyframeEffect" = [ "AnimationEffect" ];
2407 "LocalMediaStream" = [ "EventTarget" "MediaStream" ];
2408 "MediaDevices" = [ "EventTarget" ];
2409 "MediaElementAudioSourceNode" = [ "AudioNode" "EventTarget" ];
2410 "MediaEncryptedEvent" = [ "Event" ];
2411 "MediaKeyError" = [ "Event" ];
2412 "MediaKeyMessageEvent" = [ "Event" ];
2413 "MediaKeySession" = [ "EventTarget" ];
2414 "MediaQueryList" = [ "EventTarget" ];
2415 "MediaQueryListEvent" = [ "Event" ];
2416 "MediaRecorder" = [ "EventTarget" ];
2417 "MediaRecorderErrorEvent" = [ "Event" ];
2418 "MediaSource" = [ "EventTarget" ];
2419 "MediaStream" = [ "EventTarget" ];
2420 "MediaStreamAudioDestinationNode" = [ "AudioNode" "EventTarget" ];
2421 "MediaStreamAudioSourceNode" = [ "AudioNode" "EventTarget" ];
2422 "MediaStreamEvent" = [ "Event" ];
2423 "MediaStreamTrack" = [ "EventTarget" ];
2424 "MediaStreamTrackEvent" = [ "Event" ];
2425 "MessageEvent" = [ "Event" ];
2426 "MessagePort" = [ "EventTarget" ];
2427 "MidiAccess" = [ "EventTarget" ];
2428 "MidiConnectionEvent" = [ "Event" ];
2429 "MidiInput" = [ "EventTarget" "MidiPort" ];
2430 "MidiMessageEvent" = [ "Event" ];
2431 "MidiOutput" = [ "EventTarget" "MidiPort" ];
2432 "MidiPort" = [ "EventTarget" ];
2433 "MouseEvent" = [ "Event" "UiEvent" ];
2434 "MouseScrollEvent" = [ "Event" "MouseEvent" "UiEvent" ];
2435 "MutationEvent" = [ "Event" ];
2436 "NetworkInformation" = [ "EventTarget" ];
2437 "Node" = [ "EventTarget" ];
2438 "Notification" = [ "EventTarget" ];
2439 "NotificationEvent" = [ "Event" "ExtendableEvent" ];
2440 "OfflineAudioCompletionEvent" = [ "Event" ];
2441 "OfflineAudioContext" = [ "BaseAudioContext" "EventTarget" ];
2442 "OfflineResourceList" = [ "EventTarget" ];
2443 "OffscreenCanvas" = [ "EventTarget" ];
2444 "OscillatorNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ];
2445 "PageTransitionEvent" = [ "Event" ];
2446 "PaintWorkletGlobalScope" = [ "WorkletGlobalScope" ];
2447 "PannerNode" = [ "AudioNode" "EventTarget" ];
2448 "PaymentMethodChangeEvent" = [ "Event" "PaymentRequestUpdateEvent" ];
2449 "PaymentRequestUpdateEvent" = [ "Event" ];
2450 "Performance" = [ "EventTarget" ];
2451 "PerformanceMark" = [ "PerformanceEntry" ];
2452 "PerformanceMeasure" = [ "PerformanceEntry" ];
2453 "PerformanceNavigationTiming" = [ "PerformanceEntry" "PerformanceResourceTiming" ];
2454 "PerformanceResourceTiming" = [ "PerformanceEntry" ];
2455 "PermissionStatus" = [ "EventTarget" ];
2456 "PointerEvent" = [ "Event" "MouseEvent" "UiEvent" ];
2457 "PopStateEvent" = [ "Event" ];
2458 "PopupBlockedEvent" = [ "Event" ];
2459 "PresentationAvailability" = [ "EventTarget" ];
2460 "PresentationConnection" = [ "EventTarget" ];
2461 "PresentationConnectionAvailableEvent" = [ "Event" ];
2462 "PresentationConnectionCloseEvent" = [ "Event" ];
2463 "PresentationConnectionList" = [ "EventTarget" ];
2464 "PresentationRequest" = [ "EventTarget" ];
2465 "ProcessingInstruction" = [ "CharacterData" "EventTarget" "Node" ];
2466 "ProgressEvent" = [ "Event" ];
2467 "PromiseRejectionEvent" = [ "Event" ];
2468 "PublicKeyCredential" = [ "Credential" ];
2469 "PushEvent" = [ "Event" "ExtendableEvent" ];
2470 "RadioNodeList" = [ "NodeList" ];
2471 "RtcDataChannel" = [ "EventTarget" ];
2472 "RtcDataChannelEvent" = [ "Event" ];
2473 "RtcPeerConnection" = [ "EventTarget" ];
2474 "RtcPeerConnectionIceEvent" = [ "Event" ];
2475 "RtcTrackEvent" = [ "Event" ];
2476 "RtcdtmfSender" = [ "EventTarget" ];
2477 "RtcdtmfToneChangeEvent" = [ "Event" ];
2478 "Screen" = [ "EventTarget" ];
2479 "ScreenOrientation" = [ "EventTarget" ];
2480 "ScriptProcessorNode" = [ "AudioNode" "EventTarget" ];
2481 "ScrollAreaEvent" = [ "Event" "UiEvent" ];
2482 "SecurityPolicyViolationEvent" = [ "Event" ];
2483 "ServiceWorker" = [ "EventTarget" ];
2484 "ServiceWorkerContainer" = [ "EventTarget" ];
2485 "ServiceWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ];
2486 "ServiceWorkerRegistration" = [ "EventTarget" ];
2487 "ShadowRoot" = [ "DocumentFragment" "EventTarget" "Node" ];
2488 "SharedWorker" = [ "EventTarget" ];
2489 "SharedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ];
2490 "SourceBuffer" = [ "EventTarget" ];
2491 "SourceBufferList" = [ "EventTarget" ];
2492 "SpeechRecognition" = [ "EventTarget" ];
2493 "SpeechRecognitionError" = [ "Event" ];
2494 "SpeechRecognitionEvent" = [ "Event" ];
2495 "SpeechSynthesis" = [ "EventTarget" ];
2496 "SpeechSynthesisErrorEvent" = [ "Event" "SpeechSynthesisEvent" ];
2497 "SpeechSynthesisEvent" = [ "Event" ];
2498 "SpeechSynthesisUtterance" = [ "EventTarget" ];
2499 "StereoPannerNode" = [ "AudioNode" "EventTarget" ];
2500 "StorageEvent" = [ "Event" ];
2501 "SvgAnimateElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
2502 "SvgAnimateMotionElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
2503 "SvgAnimateTransformElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
2504 "SvgAnimationElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2505 "SvgCircleElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
2506 "SvgClipPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2507 "SvgComponentTransferFunctionElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2508 "SvgDefsElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
2509 "SvgDescElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2510 "SvgElement" = [ "Element" "EventTarget" "Node" ];
2511 "SvgEllipseElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
2512 "SvgFilterElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2513 "SvgForeignObjectElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
2514 "SvgGeometryElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
2515 "SvgGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2516 "SvgGraphicsElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2517 "SvgImageElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
2518 "SvgLineElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
2519 "SvgLinearGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGradientElement" ];
2520 "SvgMarkerElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2521 "SvgMaskElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2522 "SvgMetadataElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2523 "SvgPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
2524 "SvgPathSegArcAbs" = [ "SvgPathSeg" ];
2525 "SvgPathSegArcRel" = [ "SvgPathSeg" ];
2526 "SvgPathSegClosePath" = [ "SvgPathSeg" ];
2527 "SvgPathSegCurvetoCubicAbs" = [ "SvgPathSeg" ];
2528 "SvgPathSegCurvetoCubicRel" = [ "SvgPathSeg" ];
2529 "SvgPathSegCurvetoCubicSmoothAbs" = [ "SvgPathSeg" ];
2530 "SvgPathSegCurvetoCubicSmoothRel" = [ "SvgPathSeg" ];
2531 "SvgPathSegCurvetoQuadraticAbs" = [ "SvgPathSeg" ];
2532 "SvgPathSegCurvetoQuadraticRel" = [ "SvgPathSeg" ];
2533 "SvgPathSegCurvetoQuadraticSmoothAbs" = [ "SvgPathSeg" ];
2534 "SvgPathSegCurvetoQuadraticSmoothRel" = [ "SvgPathSeg" ];
2535 "SvgPathSegLinetoAbs" = [ "SvgPathSeg" ];
2536 "SvgPathSegLinetoHorizontalAbs" = [ "SvgPathSeg" ];
2537 "SvgPathSegLinetoHorizontalRel" = [ "SvgPathSeg" ];
2538 "SvgPathSegLinetoRel" = [ "SvgPathSeg" ];
2539 "SvgPathSegLinetoVerticalAbs" = [ "SvgPathSeg" ];
2540 "SvgPathSegLinetoVerticalRel" = [ "SvgPathSeg" ];
2541 "SvgPathSegMovetoAbs" = [ "SvgPathSeg" ];
2542 "SvgPathSegMovetoRel" = [ "SvgPathSeg" ];
2543 "SvgPatternElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2544 "SvgPolygonElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
2545 "SvgPolylineElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
2546 "SvgRadialGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGradientElement" ];
2547 "SvgRectElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
2548 "SvgScriptElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2549 "SvgSetElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
2550 "SvgStopElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2551 "SvgStyleElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2552 "SvgSwitchElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
2553 "SvgSymbolElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2554 "SvgTextContentElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
2555 "SvgTextElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" "SvgTextPositioningElement" ];
2556 "SvgTextPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" ];
2557 "SvgTextPositioningElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" ];
2558 "SvgTitleElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2559 "SvgUseElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
2560 "SvgViewElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2561 "SvgaElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
2562 "SvgfeBlendElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2563 "SvgfeColorMatrixElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2564 "SvgfeComponentTransferElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2565 "SvgfeCompositeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2566 "SvgfeConvolveMatrixElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2567 "SvgfeDiffuseLightingElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2568 "SvgfeDisplacementMapElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2569 "SvgfeDistantLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2570 "SvgfeDropShadowElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2571 "SvgfeFloodElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2572 "SvgfeFuncAElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
2573 "SvgfeFuncBElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
2574 "SvgfeFuncGElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
2575 "SvgfeFuncRElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
2576 "SvgfeGaussianBlurElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2577 "SvgfeImageElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2578 "SvgfeMergeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2579 "SvgfeMergeNodeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2580 "SvgfeMorphologyElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2581 "SvgfeOffsetElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2582 "SvgfePointLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2583 "SvgfeSpecularLightingElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2584 "SvgfeSpotLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2585 "SvgfeTileElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2586 "SvgfeTurbulenceElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2587 "SvggElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
2588 "SvgmPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
2589 "SvgsvgElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
2590 "SvgtSpanElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" "SvgTextPositioningElement" ];
2591 "TcpServerSocket" = [ "EventTarget" ];
2592 "TcpServerSocketEvent" = [ "Event" ];
2593 "TcpSocket" = [ "EventTarget" ];
2594 "TcpSocketErrorEvent" = [ "Event" ];
2595 "TcpSocketEvent" = [ "Event" ];
2596 "Text" = [ "CharacterData" "EventTarget" "Node" ];
2597 "TextTrack" = [ "EventTarget" ];
2598 "TextTrackCue" = [ "EventTarget" ];
2599 "TextTrackList" = [ "EventTarget" ];
2600 "TimeEvent" = [ "Event" ];
2601 "TouchEvent" = [ "Event" "UiEvent" ];
2602 "TrackEvent" = [ "Event" ];
2603 "TransitionEvent" = [ "Event" ];
2604 "UiEvent" = [ "Event" ];
2605 "Usb" = [ "EventTarget" ];
2606 "UsbConnectionEvent" = [ "Event" ];
2607 "UsbPermissionResult" = [ "EventTarget" "PermissionStatus" ];
2608 "UserProximityEvent" = [ "Event" ];
2609 "ValueEvent" = [ "Event" ];
2610 "VideoStreamTrack" = [ "EventTarget" "MediaStreamTrack" ];
2611 "VideoTrackList" = [ "EventTarget" ];
2612 "VrDisplay" = [ "EventTarget" ];
2613 "VttCue" = [ "EventTarget" "TextTrackCue" ];
2614 "WakeLockSentinel" = [ "EventTarget" ];
2615 "WaveShaperNode" = [ "AudioNode" "EventTarget" ];
2616 "WebGlContextEvent" = [ "Event" ];
2617 "WebKitCssMatrix" = [ "DomMatrix" "DomMatrixReadOnly" ];
2618 "WebSocket" = [ "EventTarget" ];
2619 "WheelEvent" = [ "Event" "MouseEvent" "UiEvent" ];
2620 "Window" = [ "EventTarget" ];
2621 "WindowClient" = [ "Client" ];
2622 "Worker" = [ "EventTarget" ];
2623 "WorkerDebuggerGlobalScope" = [ "EventTarget" ];
2624 "WorkerGlobalScope" = [ "EventTarget" ];
2625 "XmlDocument" = [ "Document" "EventTarget" "Node" ];
2626 "XmlHttpRequest" = [ "EventTarget" "XmlHttpRequestEventTarget" ];
2627 "XmlHttpRequestEventTarget" = [ "EventTarget" ];
2628 "XmlHttpRequestUpload" = [ "EventTarget" "XmlHttpRequestEventTarget" ];
2629 "Xr" = [ "EventTarget" ];
2630 "XrBoundedReferenceSpace" = [ "EventTarget" "XrReferenceSpace" "XrSpace" ];
2631 "XrInputSourceEvent" = [ "Event" ];
2632 "XrInputSourcesChangeEvent" = [ "Event" ];
2633 "XrReferenceSpace" = [ "EventTarget" "XrSpace" ];
2634 "XrReferenceSpaceEvent" = [ "Event" ];
2635 "XrSession" = [ "EventTarget" ];
2636 "XrSessionEvent" = [ "Event" ];
2637 "XrSpace" = [ "EventTarget" ];
2638 "XrViewerPose" = [ "XrPose" ];
2640 resolvedDefaultFeatures = [ "Crypto" "EventTarget" "Window" ];
2643 crateName = "webpki";
2646 sha256 = "1gd1gxip5kgdwmrvhj5gjxij2mgg2mavq1ych4q1h272ja0xg5gh";
2648 "Brian Smith <brian@briansmith.org>"
2654 usesDefaultFeatures = false;
2658 packageId = "untrusted";
2662 "alloc" = [ "ring/alloc" ];
2663 "std" = [ "alloc" ];
2665 resolvedDefaultFeatures = [ "alloc" "std" ];
2668 crateName = "winapi";
2671 sha256 = "06gl025x418lchw1wxj64ycr7gha83m44cjr5sarhynd9xkrm0sw";
2673 "Peter Atashian <retep998@gmail.com>"
2677 name = "winapi-i686-pc-windows-gnu";
2678 packageId = "winapi-i686-pc-windows-gnu";
2679 target = { target, features }: (stdenv.hostPlatform.config == "i686-pc-windows-gnu");
2682 name = "winapi-x86_64-pc-windows-gnu";
2683 packageId = "winapi-x86_64-pc-windows-gnu";
2684 target = { target, features }: (stdenv.hostPlatform.config == "x86_64-pc-windows-gnu");
2688 "debug" = [ "impl-debug" ];
2690 resolvedDefaultFeatures = [ "ntsecapi" "wtypesbase" ];
2692 "winapi-i686-pc-windows-gnu" = rec {
2693 crateName = "winapi-i686-pc-windows-gnu";
2696 sha256 = "1dmpa6mvcvzz16zg6d5vrfy4bxgg541wxrcip7cnshi06v38ffxc";
2698 "Peter Atashian <retep998@gmail.com>"
2702 "winapi-x86_64-pc-windows-gnu" = rec {
2703 crateName = "winapi-x86_64-pc-windows-gnu";
2706 sha256 = "0gqq64czqb64kskjryj8isp62m2sgvx25yyj3kpc2myh85w24bki";
2708 "Peter Atashian <retep998@gmail.com>"
2712 "x509-parser" = rec {
2713 crateName = "x509-parser";
2716 sha256 = "0f3fqbv92q3a3s51md94sw3vgzs934agl4ii5a6ym364mkdlpwg5";
2718 "Pierre Chifflier <chifflier@wzdftpd.net>"
2723 packageId = "asn1-rs";
2724 features = [ "datetime" ];
2728 packageId = "base64";
2731 name = "data-encoding";
2732 packageId = "data-encoding";
2735 name = "der-parser";
2736 packageId = "der-parser";
2737 features = [ "bigint" ];
2740 name = "lazy_static";
2741 packageId = "lazy_static";
2748 name = "oid-registry";
2749 packageId = "oid-registry";
2750 features = [ "crypto" "x509" ];
2758 name = "rusticata-macros";
2759 packageId = "rusticata-macros";
2763 packageId = "thiserror";
2768 features = [ "formatting" ];
2772 "ring" = [ "dep:ring" ];
2773 "verify" = [ "ring" ];
2775 resolvedDefaultFeatures = [ "default" "ring" "verify" ];
2778 crateName = "yasna";
2781 sha256 = "0k1gk11hq4rwlppv9f50bz8bnmgr73r66idpp7rybly96si38v9l";
2783 "Masaki Hara <ackie.h.gmai@gmail.com>"
2790 usesDefaultFeatures = false;
2791 features = [ "std" ];
2795 "bit-vec" = [ "dep:bit-vec" ];
2796 "num-bigint" = [ "dep:num-bigint" ];
2797 "time" = [ "dep:time" ];
2799 resolvedDefaultFeatures = [ "default" "std" "time" ];
2802 crateName = "zeroize";
2805 sha256 = "068nvl3n5hk6lfn5y24grf2c7anzzqfzjjccscq3md7rqp79v3fn";
2807 "The RustCrypto Project Developers"
2811 name = "zeroize_derive";
2812 packageId = "zeroize_derive";
2817 "default" = [ "alloc" ];
2818 "zeroize_derive" = [ "dep:zeroize_derive" ];
2820 resolvedDefaultFeatures = [ "alloc" "default" "zeroize_derive" ];
2822 "zeroize_derive" = rec {
2823 crateName = "zeroize_derive";
2826 sha256 = "1nzdqyryjnqcrqz0vhddpkd8sybhn0bd8rbd6l33rdhhxwzz3s41";
2829 "The RustCrypto Project Developers"
2833 name = "proc-macro2";
2834 packageId = "proc-macro2";
2838 packageId = "quote";
2845 name = "synstructure";
2846 packageId = "synstructure";
2854 # crate2nix/default.nix (excerpt start)
2857 /* Target (platform) data for conditional dependencies.
2858 This corresponds roughly to what buildRustCrate is setting.
2866 # This doesn't appear to be officially documented anywhere yet.
2867 # See https://github.com/rust-lang-nursery/rust-forge/issues/101.
2869 if stdenv.hostPlatform.isDarwin
2871 else stdenv.hostPlatform.parsed.kernel.name;
2872 arch = stdenv.hostPlatform.parsed.cpu.name;
2876 if stdenv.hostPlatform.parsed.cpu.significantByte.name == "littleEndian"
2877 then "little" else "big";
2878 pointer_width = toString stdenv.hostPlatform.parsed.cpu.bits;
2879 vendor = stdenv.hostPlatform.parsed.vendor.name;
2880 debug_assertions = false;
2883 /* Filters common temp files and build files. */
2884 # TODO(pkolloch): Substitute with gitignore filter
2885 sourceFilter = name: type:
2887 baseName = builtins.baseNameOf (builtins.toString name);
2891 baseName == ".gitignore"
2892 || (type == "directory" && baseName == ".git")
2894 # Filter out build results
2896 type == "directory" && (
2897 baseName == "target"
2898 || baseName == "_site"
2899 || baseName == ".sass-cache"
2900 || baseName == ".jekyll-metadata"
2901 || baseName == "build-artifacts"
2905 # Filter out nix-build result symlinks
2907 type == "symlink" && lib.hasPrefix "result" baseName
2910 # Filter out IDE config
2912 type == "directory" && (
2913 baseName == ".idea" || baseName == ".vscode"
2915 ) || lib.hasSuffix ".iml" baseName
2917 # Filter out nix build files
2918 || baseName == "Cargo.nix"
2920 # Filter out editor backup / swap files.
2921 || lib.hasSuffix "~" baseName
2922 || builtins.match "^\\.sw[a-z]$$" baseName != null
2923 || builtins.match "^\\..*\\.sw[a-z]$$" baseName != null
2924 || lib.hasSuffix ".tmp" baseName
2925 || lib.hasSuffix ".bak" baseName
2926 || baseName == "tests.nix"
2929 /* Returns a crate which depends on successful test execution
2930 of crate given as the second argument.
2932 testCrateFlags: list of flags to pass to the test executable
2933 testInputs: list of packages that should be available during test execution
2935 crateWithTest = { crate, testCrate, testCrateFlags, testInputs, testPreRun, testPostRun }:
2936 assert builtins.typeOf testCrateFlags == "list";
2937 assert builtins.typeOf testInputs == "list";
2938 assert builtins.typeOf testPreRun == "string";
2939 assert builtins.typeOf testPostRun == "string";
2941 # override the `crate` so that it will build and execute tests instead of
2942 # building the actual lib and bin targets We just have to pass `--test`
2943 # to rustc and it will do the right thing. We execute the tests and copy
2944 # their log and the test executables to $out for later inspection.
2947 drv = testCrate.override
2953 # If the user hasn't set any pre/post commands, we don't want to
2954 # insert empty lines. This means that any existing users of crate2nix
2955 # don't get a spurious rebuild unless they set these explicitly.
2956 testCommand = pkgs.lib.concatStringsSep "\n"
2957 (pkgs.lib.filter (s: s != "") [
2959 "$f $testCrateFlags 2>&1 | tee -a $out"
2963 pkgs.runCommand "run-tests-${testCrate.name}"
2965 inherit testCrateFlags;
2966 buildInputs = testInputs;
2970 export RUST_BACKTRACE=1
2972 # recreate a file hierarchy as when running tests with cargo
2974 # the source for test data
2975 ${pkgs.xorg.lndir}/bin/lndir ${crate.src}
2978 testRoot=target/debug
2981 # executables of the crate
2982 # we copy to prevent std::env::current_exe() to resolve to a store location
2983 for i in ${crate}/bin/*; do
2988 # test harness executables are suffixed with a hash, like cargo does
2989 # this allows to prevent name collision with the main
2990 # executables of the crate
2991 hash=$(basename $out)
2992 for file in ${drv}/tests/*; do
2993 f=$testRoot/$(basename $file)-$hash
2999 pkgs.runCommand "${crate.name}-linked"
3001 inherit (crate) outputs crateName;
3002 passthru = (crate.passthru or { }) // {
3006 echo tested by ${test}
3007 ${lib.concatMapStringsSep "\n" (output: "ln -s ${crate.${output}} ${"$"}${output}") crate.outputs}
3010 /* A restricted overridable version of builtRustCratesWithFeatures. */
3011 buildRustCrateWithFeatures =
3013 , features ? rootFeatures
3014 , crateOverrides ? defaultCrateOverrides
3015 , buildRustCrateForPkgsFunc ? null
3017 , testCrateFlags ? [ ]
3019 # Any command to run immediatelly before a test is executed.
3021 # Any command run immediatelly after a test is executed.
3035 buildRustCrateForPkgsFuncOverriden =
3036 if buildRustCrateForPkgsFunc != null
3037 then buildRustCrateForPkgsFunc
3040 if crateOverrides == pkgs.defaultCrateOverrides
3041 then buildRustCrateForPkgs
3043 pkgs: (buildRustCrateForPkgs pkgs).override {
3044 defaultCrateOverrides = crateOverrides;
3047 builtRustCrates = builtRustCratesWithFeatures {
3048 inherit packageId features;
3049 buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden;
3052 builtTestRustCrates = builtRustCratesWithFeatures {
3053 inherit packageId features;
3054 buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden;
3057 drv = builtRustCrates.crates.${packageId};
3058 testDrv = builtTestRustCrates.crates.${packageId};
3064 testCrate = testDrv;
3065 inherit testCrateFlags testInputs testPreRun testPostRun;
3071 { inherit features crateOverrides runTests testCrateFlags testInputs testPreRun testPostRun; };
3073 /* Returns an attr set with packageId mapped to the result of buildRustCrateForPkgsFunc
3074 for the corresponding crate.
3076 builtRustCratesWithFeatures =
3079 , crateConfigs ? crates
3080 , buildRustCrateForPkgsFunc
3082 , target ? defaultTarget
3084 assert (builtins.isAttrs crateConfigs);
3085 assert (builtins.isString packageId);
3086 assert (builtins.isList features);
3087 assert (builtins.isAttrs target);
3088 assert (builtins.isBool runTests);
3090 rootPackageId = packageId;
3091 mergedFeatures = mergePackageFeatures
3094 inherit rootPackageId;
3095 target = target // { test = runTests; };
3098 # Memoize built packages so that reappearing packages are only built once.
3099 builtByPackageIdByPkgs = mkBuiltByPackageIdByPkgs pkgs;
3100 mkBuiltByPackageIdByPkgs = pkgs:
3103 crates = lib.mapAttrs (packageId: value: buildByPackageIdForPkgsImpl self pkgs packageId) crateConfigs;
3104 build = mkBuiltByPackageIdByPkgs pkgs.buildPackages;
3108 buildByPackageIdForPkgsImpl = self: pkgs: packageId:
3110 features = mergedFeatures."${packageId}" or [ ];
3111 crateConfig' = crateConfigs."${packageId}";
3113 builtins.removeAttrs crateConfig' [ "resolvedDefaultFeatures" "devDependencies" ];
3116 (runTests && packageId == rootPackageId)
3117 (crateConfig'.devDependencies or [ ]);
3119 dependencyDerivations {
3120 inherit features target;
3121 buildByPackageId = depPackageId:
3122 # proc_macro crates must be compiled for the build architecture
3123 if crateConfigs.${depPackageId}.procMacro or false
3124 then self.build.crates.${depPackageId}
3125 else self.crates.${depPackageId};
3127 (crateConfig.dependencies or [ ])
3131 dependencyDerivations {
3132 inherit features target;
3133 buildByPackageId = depPackageId:
3134 self.build.crates.${depPackageId};
3135 dependencies = crateConfig.buildDependencies or [ ];
3137 filterEnabledDependenciesForThis = dependencies: filterEnabledDependencies {
3138 inherit dependencies features target;
3140 dependenciesWithRenames =
3141 lib.filter (d: d ? "rename")
3143 filterEnabledDependenciesForThis
3145 (crateConfig.buildDependencies or [ ])
3146 ++ (crateConfig.dependencies or [ ])
3150 # Crate renames have the form:
3154 # { version = "1.2.3"; rename = "crate_name01"; }
3162 (dependency: dependency.name)
3163 dependenciesWithRenames;
3164 versionAndRename = dep:
3166 package = crateConfigs."${dep.packageId}";
3168 { inherit (dep) rename; version = package.version; };
3170 lib.mapAttrs (name: choices: builtins.map versionAndRename choices) grouped;
3172 buildRustCrateForPkgsFunc pkgs
3175 src = crateConfig.src or (
3177 name = "${crateConfig.crateName}-${crateConfig.version}.tar.gz";
3178 # https://www.pietroalbini.org/blog/downloading-crates-io/
3179 # Not rate-limited, CDN URL.
3180 url = "https://static.crates.io/crates/${crateConfig.crateName}/${crateConfig.crateName}-${crateConfig.version}.crate";
3182 assert (lib.assertMsg (crateConfig ? sha256) "Missing sha256 for ${name}");
3186 extraRustcOpts = lib.lists.optional (targetFeatures != [ ]) "-C target-feature=${lib.concatMapStringsSep "," (x: "+${x}") targetFeatures}";
3187 inherit features dependencies buildDependencies crateRenames release;
3191 builtByPackageIdByPkgs;
3193 /* Returns the actual derivations for the given dependencies. */
3194 dependencyDerivations =
3200 assert (builtins.isList features);
3201 assert (builtins.isList dependencies);
3202 assert (builtins.isAttrs target);
3204 enabledDependencies = filterEnabledDependencies {
3205 inherit dependencies features target;
3207 depDerivation = dependency: buildByPackageId dependency.packageId;
3209 map depDerivation enabledDependencies;
3211 /* Returns a sanitized version of val with all values substituted that cannot
3212 be serialized as JSON.
3214 sanitizeForJson = val:
3215 if builtins.isAttrs val
3216 then lib.mapAttrs (n: v: sanitizeForJson v) val
3217 else if builtins.isList val
3218 then builtins.map sanitizeForJson val
3219 else if builtins.isFunction val
3223 /* Returns various tools to debug a crate. */
3224 debugCrate = { packageId, target ? defaultTarget }:
3225 assert (builtins.isString packageId);
3228 # The built tree as passed to buildRustCrate.
3229 buildTree = buildRustCrateWithFeatures {
3230 buildRustCrateForPkgsFunc = _: lib.id;
3233 sanitizedBuildTree = sanitizeForJson buildTree;
3234 dependencyTree = sanitizeForJson
3236 buildRustCrateWithFeatures {
3237 buildRustCrateForPkgsFunc = _: crate: {
3238 "01_crateName" = crate.crateName or false;
3239 "02_features" = crate.features or [ ];
3240 "03_dependencies" = crate.dependencies or [ ];
3245 mergedPackageFeatures = mergePackageFeatures {
3246 features = rootFeatures;
3247 inherit packageId target;
3249 diffedDefaultPackageFeatures = diffDefaultPackageFeatures {
3250 inherit packageId target;
3254 { internal = debug; };
3256 /* Returns differences between cargo default features and crate2nix default
3259 This is useful for verifying the feature resolution in crate2nix.
3261 diffDefaultPackageFeatures =
3262 { crateConfigs ? crates
3266 assert (builtins.isAttrs crateConfigs);
3268 prefixValues = prefix: lib.mapAttrs (n: v: { "${prefix}" = v; });
3272 (mergePackageFeatures { inherit crateConfigs packageId target; features = [ "default" ]; });
3273 configs = prefixValues "cargo" crateConfigs;
3274 combined = lib.foldAttrs (a: b: a // b) { } [ mergedFeatures configs ];
3277 (lib.filterAttrs (n: v: !(v ? "crate2nix") && (v ? "cargo")) combined);
3280 (lib.filterAttrs (n: v: (v ? "crate2nix") && !(v ? "cargo")) combined);
3281 differentFeatures = lib.filterAttrs
3286 && (v.crate2nix.features or [ ]) != (v."cargo".resolved_default_features or [ ])
3291 inherit onlyInCargo onlyInCrate2Nix differentFeatures;
3294 /* Returns an attrset mapping packageId to the list of enabled features.
3296 If multiple paths to a dependency enable different features, the
3297 corresponding feature sets are merged. Features in rust are additive.
3299 mergePackageFeatures =
3300 { crateConfigs ? crates
3302 , rootPackageId ? packageId
3303 , features ? rootFeatures
3304 , dependencyPath ? [ crates.${packageId}.crateName ]
3305 , featuresByPackageId ? { }
3307 # Adds devDependencies to the crate with rootPackageId.
3311 assert (builtins.isAttrs crateConfigs);
3312 assert (builtins.isString packageId);
3313 assert (builtins.isString rootPackageId);
3314 assert (builtins.isList features);
3315 assert (builtins.isList dependencyPath);
3316 assert (builtins.isAttrs featuresByPackageId);
3317 assert (builtins.isAttrs target);
3318 assert (builtins.isBool runTests);
3320 crateConfig = crateConfigs."${packageId}" or (builtins.throw "Package not found: ${packageId}");
3321 expandedFeatures = expandFeatures (crateConfig.features or { }) features;
3322 enabledFeatures = enableFeatures (crateConfig.dependencies or [ ]) expandedFeatures;
3323 depWithResolvedFeatures = dependency:
3325 packageId = dependency.packageId;
3326 features = dependencyFeatures enabledFeatures dependency;
3328 { inherit packageId features; };
3329 resolveDependencies = cache: path: dependencies:
3330 assert (builtins.isAttrs cache);
3331 assert (builtins.isList dependencies);
3333 enabledDependencies = filterEnabledDependencies {
3334 inherit dependencies target;
3335 features = enabledFeatures;
3337 directDependencies = map depWithResolvedFeatures enabledDependencies;
3338 foldOverCache = op: lib.foldl op cache directDependencies;
3342 cache: { packageId, features }:
3344 cacheFeatures = cache.${packageId} or [ ];
3345 combinedFeatures = sortedUnique (cacheFeatures ++ features);
3347 if cache ? ${packageId} && cache.${packageId} == combinedFeatures
3350 mergePackageFeatures {
3351 features = combinedFeatures;
3352 featuresByPackageId = cache;
3353 inherit crateConfigs packageId target runTests rootPackageId;
3358 cacheFeatures = featuresByPackageId.${packageId} or [ ];
3359 combinedFeatures = sortedUnique (cacheFeatures ++ enabledFeatures);
3361 featuresByPackageId // {
3362 "${packageId}" = combinedFeatures;
3364 cacheWithDependencies =
3365 resolveDependencies cacheWithSelf "dep"
3367 crateConfig.dependencies or [ ]
3369 (runTests && packageId == rootPackageId)
3370 (crateConfig.devDependencies or [ ])
3374 cacheWithDependencies "build"
3375 (crateConfig.buildDependencies or [ ]);
3379 /* Returns the enabled dependencies given the enabled features. */
3380 filterEnabledDependencies = { dependencies, features, target }:
3381 assert (builtins.isList dependencies);
3382 assert (builtins.isList features);
3383 assert (builtins.isAttrs target);
3389 targetFunc = dep.target or (features: true);
3391 targetFunc { inherit features target; }
3393 !(dep.optional or false)
3394 || builtins.any (doesFeatureEnableDependency dep) features
3399 /* Returns whether the given feature should enable the given dependency. */
3400 doesFeatureEnableDependency = dependency: feature:
3402 name = dependency.rename or dependency.name;
3403 prefix = "${name}/";
3404 len = builtins.stringLength prefix;
3405 startsWithPrefix = builtins.substring 0 len feature == prefix;
3407 feature == name || startsWithPrefix;
3409 /* Returns the expanded features for the given inputFeatures by applying the
3410 rules in featureMap.
3412 featureMap is an attribute set which maps feature names to lists of further
3413 feature names to enable in case this feature is selected.
3415 expandFeatures = featureMap: inputFeatures:
3416 assert (builtins.isAttrs featureMap);
3417 assert (builtins.isList inputFeatures);
3419 expandFeature = feature:
3420 assert (builtins.isString feature);
3421 [ feature ] ++ (expandFeatures featureMap (featureMap."${feature}" or [ ]));
3422 outFeatures = lib.concatMap expandFeature inputFeatures;
3424 sortedUnique outFeatures;
3426 /* This function adds optional dependencies as features if they are enabled
3427 indirectly by dependency features. This function mimics Cargo's behavior
3428 described in a note at:
3429 https://doc.rust-lang.org/nightly/cargo/reference/features.html#dependency-features
3431 enableFeatures = dependencies: features:
3432 assert (builtins.isList features);
3433 assert (builtins.isList dependencies);
3435 additionalFeatures = lib.concatMap
3438 assert (builtins.isAttrs dependency);
3440 enabled = builtins.any (doesFeatureEnableDependency dependency) features;
3442 if (dependency.optional or false) && enabled
3443 then [ (dependency.rename or dependency.name) ]
3448 sortedUnique (features ++ additionalFeatures);
3451 Returns the actual features for the given dependency.
3453 features: The features of the crate that refers this dependency.
3455 dependencyFeatures = features: dependency:
3456 assert (builtins.isList features);
3457 assert (builtins.isAttrs dependency);
3460 if dependency.usesDefaultFeatures or true
3463 explicitFeatures = dependency.features or [ ];
3464 additionalDependencyFeatures =
3466 dependencyPrefix = (dependency.rename or dependency.name) + "/";
3467 dependencyFeatures =
3468 builtins.filter (f: lib.hasPrefix dependencyPrefix f) features;
3470 builtins.map (lib.removePrefix dependencyPrefix) dependencyFeatures;
3472 defaultOrNil ++ explicitFeatures ++ additionalDependencyFeatures;
3474 /* Sorts and removes duplicates from a list of strings. */
3475 sortedUnique = features:
3476 assert (builtins.isList features);
3477 assert (builtins.all builtins.isString features);
3479 outFeaturesSet = lib.foldl (set: feature: set // { "${feature}" = 1; }) { } features;
3480 outFeaturesUnique = builtins.attrNames outFeaturesSet;
3482 builtins.sort (a: b: a < b) outFeaturesUnique;
3484 deprecationWarning = message: value:
3485 if strictDeprecation
3486 then builtins.throw "strictDeprecation enabled, aborting: ${message}"
3487 else builtins.trace message value;
3490 # crate2nix/default.nix (excerpt end)