# This file was @generated by crate2nix 0.14.1 with the command:
# "generate" "--all-features"
# See https://github.com/kolloch/crate2nix for more info.
{ nixpkgs ? <nixpkgs>
, pkgs ? import nixpkgs { config = { }; }
, lib ? pkgs.lib
, stdenv ? pkgs.stdenv
, buildRustCrateForPkgs ? pkgs: pkgs.buildRustCrate
# This is used as the `crateOverrides` argument for `buildRustCrate`.
, defaultCrateOverrides ? pkgs.defaultCrateOverrides
# The features to enable for the root_crate or the workspace_members.
, rootFeatures ? [ "default" ]
# If true, throw errors instead of issueing deprecation warnings.
, strictDeprecation ? false
# Elements to add to the `-C target-feature=` argument passed to `rustc`
# (separated by `,`, prefixed with `+`).
# Used for conditional compilation based on CPU feature detection.
, targetFeatures ? [ ]
# Whether to perform release builds: longer compile times, faster binaries.
, release ? true
# Additional crate2nix configuration if it exists.
, crateConfig ? if builtins.pathExists ./crate-config.nix
then pkgs.callPackage ./crate-config.nix { }
else { }
}:
rec {
#
# "public" attributes that we attempt to keep stable with new versions of crate2nix.
#
rootCrate = rec {
packageId = "tvixbolt";
# Use this attribute to refer to the derivation building your root crate package.
# You can override the features with rootCrate.build.override { features = [ "default" "feature1" ... ]; }.
build = internal.buildRustCrateWithFeatures {
inherit packageId;
};
# Debug support which might change between releases.
# File a bug if you depend on any for non-debug work!
debug = internal.debugCrate { inherit packageId; };
};
# Refer your crate build derivation by name here.
# You can override the features with
# workspaceMembers."${crateName}".build.override { features = [ "default" "feature1" ... ]; }.
workspaceMembers = {
"tvixbolt" = rec {
packageId = "tvixbolt";
build = internal.buildRustCrateWithFeatures {
packageId = "tvixbolt";
};
# 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 = {
"aho-corasick" = rec {
crateName = "aho-corasick";
version = "1.1.2";
edition = "2021";
sha256 = "1w510wnixvlgimkx1zjbvlxh6xps2vjgfqgwf5a6adlbjp5rv5mj";
libName = "aho_corasick";
authors = [
"Andrew Gallant <jamslam@gmail.com>"
];
dependencies = [
{
name = "memchr";
packageId = "memchr";
optional = true;
usesDefaultFeatures = false;
}
];
features = {
"default" = [ "std" "perf-literal" ];
"logging" = [ "dep:log" ];
"perf-literal" = [ "dep:memchr" ];
"std" = [ "memchr?/std" ];
};
resolvedDefaultFeatures = [ "default" "perf-literal" "std" ];
};
"autocfg" = rec {
crateName = "autocfg";
version = "1.1.0";
edition = "2015";
sha256 = "1ylp3cb47ylzabimazvbz9ms6ap784zhb6syaz6c1jqpmcmq0s6l";
authors = [
"Josh Stone <cuviper@gmail.com>"
];
};
"bitflags 1.3.2" = rec {
crateName = "bitflags";
version = "1.3.2";
edition = "2018";
sha256 = "12ki6w8gn1ldq7yz9y680llwk5gmrhrzszaa17g1sbrw2r2qvwxy";
authors = [
"The Rust Project Developers"
];
features = {
"compiler_builtins" = [ "dep:compiler_builtins" ];
"core" = [ "dep:core" ];
"rustc-dep-of-std" = [ "core" "compiler_builtins" ];
};
resolvedDefaultFeatures = [ "default" ];
};
"bitflags 2.4.1" = rec {
crateName = "bitflags";
version = "2.4.1";
edition = "2021";
sha256 = "01ryy3kd671b0ll4bhdvhsz67vwz1lz53fz504injrd7wpv64xrj";
authors = [
"The Rust Project Developers"
];
features = {
"arbitrary" = [ "dep:arbitrary" ];
"bytemuck" = [ "dep:bytemuck" ];
"compiler_builtins" = [ "dep:compiler_builtins" ];
"core" = [ "dep:core" ];
"rustc-dep-of-std" = [ "core" "compiler_builtins" ];
"serde" = [ "dep:serde" ];
};
};
"bitmaps" = rec {
crateName = "bitmaps";
version = "3.2.0";
edition = "2021";
sha256 = "00ql08pm4l9hizkldyy54v0pk96g7zg8x6i72c2vkcq0iawl4dkh";
authors = [
"Bodil Stokke <bodil@bodil.org>"
];
features = {
"default" = [ "std" ];
};
resolvedDefaultFeatures = [ "default" "std" ];
};
"block-buffer" = rec {
crateName = "block-buffer";
version = "0.10.4";
edition = "2018";
sha256 = "0w9sa2ypmrsqqvc20nhwr75wbb5cjr4kkyhpjm1z1lv2kdicfy1h";
authors = [
"RustCrypto Developers"
];
dependencies = [
{
name = "generic-array";
packageId = "generic-array";
}
];
};
"boolinator" = rec {
crateName = "boolinator";
version = "2.4.0";
edition = "2015";
sha256 = "1nccxzb1dfkjfrgzqaw1a90p26zlvv6nah5ckcpj6bn9a4zqga6g";
authors = [
"Daniel Keep <daniel.keep@gmail.com>"
];
};
"bstr" = rec {
crateName = "bstr";
version = "1.9.0";
edition = "2021";
sha256 = "1p6hzf3wqwwynv6w4pn17jg21amfafph9kb5sfvf1idlli8h13y4";
authors = [
"Andrew Gallant <jamslam@gmail.com>"
];
dependencies = [
{
name = "memchr";
packageId = "memchr";
usesDefaultFeatures = false;
}
{
name = "regex-automata";
packageId = "regex-automata";
optional = true;
usesDefaultFeatures = false;
features = [ "dfa-search" ];
}
{
name = "serde";
packageId = "serde";
optional = true;
usesDefaultFeatures = false;
}
];
features = {
"alloc" = [ "memchr/alloc" "serde?/alloc" ];
"default" = [ "std" "unicode" ];
"serde" = [ "dep:serde" ];
"std" = [ "alloc" "memchr/std" "serde?/std" ];
"unicode" = [ "dep:regex-automata" ];
};
resolvedDefaultFeatures = [ "alloc" "default" "serde" "std" "unicode" ];
};
"bumpalo" = rec {
crateName = "bumpalo";
version = "3.14.0";
edition = "2021";
sha256 = "1v4arnv9kwk54v5d0qqpv4vyw2sgr660nk0w3apzixi1cm3yfc3z";
authors = [
"Nick Fitzgerald <fitzgen@gmail.com>"
];
features = {
"allocator-api2" = [ "dep:allocator-api2" ];
};
resolvedDefaultFeatures = [ "default" ];
};
"bytes" = rec {
crateName = "bytes";
version = "1.5.0";
edition = "2018";
sha256 = "08w2i8ac912l8vlvkv3q51cd4gr09pwlg3sjsjffcizlrb0i5gd2";
authors = [
"Carl Lerche <me@carllerche.com>"
"Sean McArthur <sean@seanmonstar.com>"
];
features = {
"default" = [ "std" ];
"serde" = [ "dep:serde" ];
};
resolvedDefaultFeatures = [ "default" "std" ];
};
"cfg-if" = rec {
crateName = "cfg-if";
version = "1.0.0";
edition = "2018";
sha256 = "1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds";
authors = [
"Alex Crichton <alex@alexcrichton.com>"
];
features = {
"compiler_builtins" = [ "dep:compiler_builtins" ];
"core" = [ "dep:core" ];
"rustc-dep-of-std" = [ "core" "compiler_builtins" ];
};
};
"codemap" = rec {
crateName = "codemap";
version = "0.1.3";
edition = "2015";
sha256 = "091azkslwkcijj3lp9ymb084y9a0wm4fkil7m613ja68r2snkrxr";
authors = [
"Kevin Mehall <km@kevinmehall.net>"
];
};
"codemap-diagnostic" = rec {
crateName = "codemap-diagnostic";
version = "0.1.2";
edition = "2015";
sha256 = "08l1b84bn8r8a72rbvyi2v8a5i0j0kk0a5gr7fb6lmjvw05pf86c";
authors = [
"Kevin Mehall <km@kevinmehall.net>"
"The Rust Project Developers"
];
dependencies = [
{
name = "codemap";
packageId = "codemap";
}
{
name = "termcolor";
packageId = "termcolor";
}
];
};
"console_error_panic_hook" = rec {
crateName = "console_error_panic_hook";
version = "0.1.7";
edition = "2015";
sha256 = "1g5v8s0ndycc10mdn6igy914k645pgpcl8vjpz6nvxkhyirynsm0";
authors = [
"Nick Fitzgerald <fitzgen@gmail.com>"
];
dependencies = [
{
name = "cfg-if";
packageId = "cfg-if";
}
{
name = "wasm-bindgen";
packageId = "wasm-bindgen";
}
];
};
"countme" = rec {
crateName = "countme";
version = "3.0.1";
edition = "2018";
sha256 = "0dn62hhvgmwyxslh14r4nlbvz8h50cp5mnn1qhqsw63vs7yva13p";
authors = [
"Aleksey Kladov <aleksey.kladov@gmail.com>"
];
features = {
"dashmap" = [ "dep:dashmap" ];
"enable" = [ "dashmap" "once_cell" "rustc-hash" ];
"once_cell" = [ "dep:once_cell" ];
"print_at_exit" = [ "enable" ];
"rustc-hash" = [ "dep:rustc-hash" ];
};
};
"cpufeatures" = rec {
crateName = "cpufeatures";
version = "0.2.12";
edition = "2018";
sha256 = "012m7rrak4girqlii3jnqwrr73gv1i980q4wra5yyyhvzwk5xzjk";
authors = [
"RustCrypto Developers"
];
dependencies = [
{
name = "libc";
packageId = "libc";
target = { target, features }: (stdenv.hostPlatform.rust.rustcTarget == "aarch64-linux-android");
}
{
name = "libc";
packageId = "libc";
target = { target, features }: (("aarch64" == target."arch" or null) && ("linux" == target."os" or null));
}
{
name = "libc";
packageId = "libc";
target = { target, features }: (("aarch64" == target."arch" or null) && ("apple" == target."vendor" or null));
}
{
name = "libc";
packageId = "libc";
target = { target, features }: (("loongarch64" == target."arch" or null) && ("linux" == target."os" or null));
}
];
};
"crypto-common" = rec {
crateName = "crypto-common";
version = "0.1.6";
edition = "2018";
sha256 = "1cvby95a6xg7kxdz5ln3rl9xh66nz66w46mm3g56ri1z5x815yqv";
authors = [
"RustCrypto Developers"
];
dependencies = [
{
name = "generic-array";
packageId = "generic-array";
features = [ "more_lengths" ];
}
{
name = "typenum";
packageId = "typenum";
}
];
features = {
"getrandom" = [ "rand_core/getrandom" ];
"rand_core" = [ "dep:rand_core" ];
};
resolvedDefaultFeatures = [ "std" ];
};
"data-encoding" = rec {
crateName = "data-encoding";
version = "2.6.0";
edition = "2018";
sha256 = "1qnn68n4vragxaxlkqcb1r28d3hhj43wch67lm4rpxlw89wnjmp8";
authors = [
"Julien Cretin <git@ia0.eu>"
];
features = {
"default" = [ "std" ];
"std" = [ "alloc" ];
};
resolvedDefaultFeatures = [ "alloc" "default" "std" ];
};
"digest" = rec {
crateName = "digest";
version = "0.10.7";
edition = "2018";
sha256 = "14p2n6ih29x81akj097lvz7wi9b6b9hvls0lwrv7b6xwyy0s5ncy";
authors = [
"RustCrypto Developers"
];
dependencies = [
{
name = "block-buffer";
packageId = "block-buffer";
optional = true;
}
{
name = "crypto-common";
packageId = "crypto-common";
}
];
features = {
"blobby" = [ "dep:blobby" ];
"block-buffer" = [ "dep:block-buffer" ];
"const-oid" = [ "dep:const-oid" ];
"core-api" = [ "block-buffer" ];
"default" = [ "core-api" ];
"dev" = [ "blobby" ];
"mac" = [ "subtle" ];
"oid" = [ "const-oid" ];
"rand_core" = [ "crypto-common/rand_core" ];
"std" = [ "alloc" "crypto-common/std" ];
"subtle" = [ "dep:subtle" ];
};
resolvedDefaultFeatures = [ "alloc" "block-buffer" "core-api" "default" "std" ];
};
"dirs" = rec {
crateName = "dirs";
version = "4.0.0";
edition = "2015";
sha256 = "0n8020zl4f0frfnzvgb9agvk4a14i1kjz4daqnxkgslndwmaffna";
authors = [
"Simon Ochsenreither <simon@ochsenreither.de>"
];
dependencies = [
{
name = "dirs-sys";
packageId = "dirs-sys";
}
];
};
"dirs-sys" = rec {
crateName = "dirs-sys";
version = "0.3.7";
edition = "2015";
sha256 = "19md1cnkazham8a6kh22v12d8hh3raqahfk6yb043vrjr68is78v";
authors = [
"Simon Ochsenreither <simon@ochsenreither.de>"
];
dependencies = [
{
name = "libc";
packageId = "libc";
target = { target, features }: (target."unix" or false);
}
{
name = "redox_users";
packageId = "redox_users";
usesDefaultFeatures = false;
target = { target, features }: ("redox" == target."os" or null);
}
{
name = "winapi";
packageId = "winapi";
target = { target, features }: (target."windows" or false);
features = [ "knownfolders" "objbase" "shlobj" "winbase" "winerror" ];
}
];
};
"either" = rec {
crateName = "either";
version = "1.9.0";
edition = "2018";
sha256 = "01qy3anr7jal5lpc20791vxrw0nl6vksb5j7x56q2fycgcyy8sm2";
authors = [
"bluss"
];
features = {
"default" = [ "use_std" ];
"serde" = [ "dep:serde" ];
};
resolvedDefaultFeatures = [ "use_std" ];
};
"fnv" = rec {
crateName = "fnv";
version = "1.0.7";
edition = "2015";
sha256 = "1hc2mcqha06aibcaza94vbi81j6pr9a1bbxrxjfhc91zin8yr7iz";
libPath = "lib.rs";
authors = [
"Alex Crichton <alex@alexcrichton.com>"
];
features = {
"default" = [ "std" ];
};
resolvedDefaultFeatures = [ "default" "std" ];
};
"form_urlencoded" = rec {
crateName = "form_urlencoded";
version = "1.2.1";
edition = "2018";
sha256 = "0milh8x7nl4f450s3ddhg57a3flcv6yq8hlkyk6fyr3mcb128dp1";
authors = [
"The rust-url developers"
];
dependencies = [
{
name = "percent-encoding";
packageId = "percent-encoding";
usesDefaultFeatures = false;
}
];
features = {
"alloc" = [ "percent-encoding/alloc" ];
"default" = [ "std" ];
"std" = [ "alloc" "percent-encoding/std" ];
};
resolvedDefaultFeatures = [ "alloc" "default" "std" ];
};
"futures-channel" = rec {
crateName = "futures-channel";
version = "0.3.30";
edition = "2018";
sha256 = "0y6b7xxqdjm9hlcjpakcg41qfl7lihf6gavk8fyqijsxhvbzgj7a";
dependencies = [
{
name = "futures-core";
packageId = "futures-core";
usesDefaultFeatures = false;
}
];
features = {
"alloc" = [ "futures-core/alloc" ];
"default" = [ "std" ];
"futures-sink" = [ "dep:futures-sink" ];
"sink" = [ "futures-sink" ];
"std" = [ "alloc" "futures-core/std" ];
};
resolvedDefaultFeatures = [ "alloc" "default" "std" ];
};
"futures-core" = rec {
crateName = "futures-core";
version = "0.3.30";
edition = "2018";
sha256 = "07aslayrn3lbggj54kci0ishmd1pr367fp7iks7adia1p05miinz";
features = {
"default" = [ "std" ];
"portable-atomic" = [ "dep:portable-atomic" ];
"std" = [ "alloc" ];
};
resolvedDefaultFeatures = [ "alloc" "default" "std" ];
};
"genawaiter" = rec {
crateName = "genawaiter";
version = "0.99.1";
edition = "2018";
sha256 = "1861a6vy9lc9a8lbw496m9j9jcjcn9nf7rkm6jqkkpnb3cvd0sy8";
authors = [
"John Simon <john@whatisaph.one>"
];
dependencies = [
{
name = "genawaiter-macro";
packageId = "genawaiter-macro";
}
];
features = {
"default" = [ "proc_macro" ];
"futures-core" = [ "dep:futures-core" ];
"futures03" = [ "futures-core" ];
"genawaiter-proc-macro" = [ "dep:genawaiter-proc-macro" ];
"proc-macro-hack" = [ "dep:proc-macro-hack" ];
"proc_macro" = [ "genawaiter-proc-macro" "proc-macro-hack" "genawaiter-macro/proc_macro" ];
};
};
"genawaiter-macro" = rec {
crateName = "genawaiter-macro";
version = "0.99.1";
edition = "2018";
sha256 = "1g6zmr88fk48f1ksz9ik1i2mwjsiam9s4p9aybhvs2zwzphxychb";
authors = [
"Devin R <devin.ragotzy@gmail.com>"
];
features = { };
};
"generic-array" = rec {
crateName = "generic-array";
version = "0.14.7";
edition = "2015";
sha256 = "16lyyrzrljfq424c3n8kfwkqihlimmsg5nhshbbp48np3yjrqr45";
libName = "generic_array";
authors = [
"Bartłomiej Kamiński <fizyk20@gmail.com>"
"Aaron Trent <novacrazy@gmail.com>"
];
dependencies = [
{
name = "typenum";
packageId = "typenum";
}
];
buildDependencies = [
{
name = "version_check";
packageId = "version_check";
}
];
features = {
"serde" = [ "dep:serde" ];
"zeroize" = [ "dep:zeroize" ];
};
resolvedDefaultFeatures = [ "more_lengths" ];
};
"getrandom" = rec {
crateName = "getrandom";
version = "0.2.12";
edition = "2018";
sha256 = "1d8jb9bv38nkwlqqdjcav6gxckgwc9g30pm3qq506rvncpm9400r";
authors = [
"The Rand Project Developers"
];
dependencies = [
{
name = "cfg-if";
packageId = "cfg-if";
}
{
name = "libc";
packageId = "libc";
usesDefaultFeatures = false;
target = { target, features }: (target."unix" or false);
}
{
name = "wasi";
packageId = "wasi";
usesDefaultFeatures = false;
target = { target, features }: ("wasi" == target."os" or null);
}
];
features = {
"compiler_builtins" = [ "dep:compiler_builtins" ];
"core" = [ "dep:core" ];
"js" = [ "wasm-bindgen" "js-sys" ];
"js-sys" = [ "dep:js-sys" ];
"rustc-dep-of-std" = [ "compiler_builtins" "core" "libc/rustc-dep-of-std" "wasi/rustc-dep-of-std" ];
"wasm-bindgen" = [ "dep:wasm-bindgen" ];
};
resolvedDefaultFeatures = [ "std" ];
};
"gloo" = rec {
crateName = "gloo";
version = "0.4.2";
edition = "2018";
sha256 = "1kb8ynbd43r3xnhcrkj8kcscqc86q7a2s56dlnbkwpp5xrjpk513";
authors = [
"Rust and WebAssembly Working Group"
];
dependencies = [
{
name = "gloo-console";
packageId = "gloo-console";
}
{
name = "gloo-dialogs";
packageId = "gloo-dialogs";
}
{
name = "gloo-events";
packageId = "gloo-events";
}
{
name = "gloo-file";
packageId = "gloo-file";
}
{
name = "gloo-render";
packageId = "gloo-render";
}
{
name = "gloo-storage";
packageId = "gloo-storage";
}
{
name = "gloo-timers";
packageId = "gloo-timers";
}
{
name = "gloo-utils";
packageId = "gloo-utils";
}
];
features = {
"futures" = [ "gloo-timers/futures" "gloo-file/futures" ];
};
resolvedDefaultFeatures = [ "default" "futures" ];
};
"gloo-console" = rec {
crateName = "gloo-console";
version = "0.2.3";
edition = "2018";
sha256 = "0gqd35vn0i5y6hzfrsb2i032p1j832c08sar6dr19gny0lycxdw2";
authors = [
"Rust and WebAssembly Working Group"
];
dependencies = [
{
name = "gloo-utils";
packageId = "gloo-utils";
features = [ "serde" ];
}
{
name = "js-sys";
packageId = "js-sys";
}
{
name = "serde";
packageId = "serde";
features = [ "derive" ];
}
{
name = "wasm-bindgen";
packageId = "wasm-bindgen";
}
{
name = "web-sys";
packageId = "web-sys";
features = [ "console" "Document" ];
}
];
};
"gloo-dialogs" = rec {
crateName = "gloo-dialogs";
version = "0.1.1";
edition = "2018";
sha256 = "1rh2j0l8rbj8pbypxqy99qi2x3hq52sclijs8h47zlkjmij261k7";
authors = [
"Rust and WebAssembly Working Group"
];
dependencies = [
{
name = "wasm-bindgen";
packageId = "wasm-bindgen";
}
{
name = "web-sys";
packageId = "web-sys";
features = [ "Window" ];
}
];
};
"gloo-events" = rec {
crateName = "gloo-events";
version = "0.1.2";
edition = "2018";
sha256 = "1z4j14r2lim77s0jm1dpk306jyycmx2kirid33j0b0gdmgw0gcb8";
authors = [
"Rust and WebAssembly Working Group"
];
dependencies = [
{
name = "wasm-bindgen";
packageId = "wasm-bindgen";
}
{
name = "web-sys";
packageId = "web-sys";
features = [ "Event" "EventTarget" "AddEventListenerOptions" ];
}
];
devDependencies = [
{
name = "web-sys";
packageId = "web-sys";
features = [ "HtmlElement" "Window" "Document" "Element" "MouseEvent" "ProgressEvent" ];
}
];
};
"gloo-file" = rec {
crateName = "gloo-file";
version = "0.2.3";
edition = "2018";
sha256 = "1mxnd7l8gglv5yqhah6ny329hc0c98vn7h5xg0yv8f0aax75dmd8";
authors = [
"Rust and WebAssembly Working Group"
];
dependencies = [
{
name = "futures-channel";
packageId = "futures-channel";
optional = true;
}
{
name = "gloo-events";
packageId = "gloo-events";
}
{
name = "js-sys";
packageId = "js-sys";
}
{
name = "wasm-bindgen";
packageId = "wasm-bindgen";
}
{
name = "web-sys";
packageId = "web-sys";
features = [ "Blob" "File" "FileList" "FileReader" "HtmlInputElement" "BlobPropertyBag" "FilePropertyBag" "DomException" "Url" ];
}
];
devDependencies = [
{
name = "web-sys";
packageId = "web-sys";
features = [ "Window" "Response" ];
}
];
features = {
"futures" = [ "futures-channel" ];
"futures-channel" = [ "dep:futures-channel" ];
"mime" = [ "dep:mime" ];
};
resolvedDefaultFeatures = [ "default" "futures" "futures-channel" ];
};
"gloo-render" = rec {
crateName = "gloo-render";
version = "0.1.1";
edition = "2018";
sha256 = "0r3pxj22l489ldakj6521a0f0n1r9v8xrai3k12d9kv7xxm31n9g";
authors = [
"Rust and WebAssembly Working Group"
];
dependencies = [
{
name = "wasm-bindgen";
packageId = "wasm-bindgen";
}
{
name = "web-sys";
packageId = "web-sys";
features = [ "Window" ];
}
];
};
"gloo-storage" = rec {
crateName = "gloo-storage";
version = "0.2.2";
edition = "2018";
sha256 = "1074j754a6c21sbmqws5qwaha0a13fikv17ps476zzfvyl5vcsjx";
authors = [
"Rust and WebAssembly Working Group"
];
dependencies = [
{
name = "gloo-utils";
packageId = "gloo-utils";
}
{
name = "js-sys";
packageId = "js-sys";
}
{
name = "serde";
packageId = "serde";
}
{
name = "serde_json";
packageId = "serde_json";
}
{
name = "thiserror";
packageId = "thiserror";
}
{
name = "wasm-bindgen";
packageId = "wasm-bindgen";
}
{
name = "web-sys";
packageId = "web-sys";
features = [ "Storage" "Window" ];
}
];
devDependencies = [
{
name = "serde";
packageId = "serde";
features = [ "derive" ];
}
];
};
"gloo-timers" = rec {
crateName = "gloo-timers";
version = "0.2.6";
edition = "2018";
sha256 = "0p2yqcxw0q9kclhwpgshq1r4ijns07nmmagll3lvrgl7pdk5m6cv";
authors = [
"Rust and WebAssembly Working Group"
];
dependencies = [
{
name = "futures-channel";
packageId = "futures-channel";
optional = true;
}
{
name = "futures-core";
packageId = "futures-core";
optional = true;
}
{
name = "js-sys";
packageId = "js-sys";
}
{
name = "wasm-bindgen";
packageId = "wasm-bindgen";
}
];
features = {
"futures" = [ "futures-core" "futures-channel" ];
"futures-channel" = [ "dep:futures-channel" ];
"futures-core" = [ "dep:futures-core" ];
};
resolvedDefaultFeatures = [ "default" "futures" "futures-channel" "futures-core" ];
};
"gloo-utils" = rec {
crateName = "gloo-utils";
version = "0.1.7";
edition = "2018";
sha256 = "13m59g36spynspvhx0xsaahbkdshn1v03gcjf87s7cvc443wnzq3";
authors = [
"Rust and WebAssembly Working Group"
];
dependencies = [
{
name = "js-sys";
packageId = "js-sys";
}
{
name = "serde";
packageId = "serde";
optional = true;
}
{
name = "serde_json";
packageId = "serde_json";
optional = true;
}
{
name = "wasm-bindgen";
packageId = "wasm-bindgen";
}
{
name = "web-sys";
packageId = "web-sys";
features = [ "Document" "History" "HtmlElement" "Location" "Window" "HtmlHeadElement" "Element" ];
}
];
features = {
"default" = [ "serde" ];
"serde" = [ "dep:serde" "dep:serde_json" ];
};
resolvedDefaultFeatures = [ "default" "serde" ];
};
"hashbrown 0.12.3" = rec {
crateName = "hashbrown";
version = "0.12.3";
edition = "2021";
sha256 = "1268ka4750pyg2pbgsr43f0289l5zah4arir2k4igx5a8c6fg7la";
authors = [
"Amanieu d'Antras <amanieu@gmail.com>"
];
features = {
"ahash" = [ "dep:ahash" ];
"ahash-compile-time-rng" = [ "ahash/compile-time-rng" ];
"alloc" = [ "dep:alloc" ];
"bumpalo" = [ "dep:bumpalo" ];
"compiler_builtins" = [ "dep:compiler_builtins" ];
"core" = [ "dep:core" ];
"default" = [ "ahash" "inline-more" ];
"rayon" = [ "dep:rayon" ];
"rustc-dep-of-std" = [ "nightly" "core" "compiler_builtins" "alloc" "rustc-internal-api" ];
"serde" = [ "dep:serde" ];
};
resolvedDefaultFeatures = [ "raw" ];
};
"hashbrown 0.14.3" = rec {
crateName = "hashbrown";
version = "0.14.3";
edition = "2021";
sha256 = "012nywlg0lj9kwanh69my5x67vjlfmzfi9a0rq4qvis2j8fil3r9";
authors = [
"Amanieu d'Antras <amanieu@gmail.com>"
];
features = {
"ahash" = [ "dep:ahash" ];
"alloc" = [ "dep:alloc" ];
"allocator-api2" = [ "dep:allocator-api2" ];
"compiler_builtins" = [ "dep:compiler_builtins" ];
"core" = [ "dep:core" ];
"default" = [ "ahash" "inline-more" "allocator-api2" ];
"equivalent" = [ "dep:equivalent" ];
"nightly" = [ "allocator-api2?/nightly" "bumpalo/allocator_api" ];
"rayon" = [ "dep:rayon" ];
"rkyv" = [ "dep:rkyv" ];
"rustc-dep-of-std" = [ "nightly" "core" "compiler_builtins" "alloc" "rustc-internal-api" ];
"serde" = [ "dep:serde" ];
};
resolvedDefaultFeatures = [ "inline-more" ];
};
"imbl" = rec {
crateName = "imbl";
version = "2.0.3";
edition = "2018";
sha256 = "11bhchs0d1bbbmr8ari4y4d62vqxs7xg4fkhjlhgbv98h0n193cp";
authors = [
"Bodil Stokke <bodil@bodil.org>"
"Joe Neeman <joeneeman@gmail.com>"
];
dependencies = [
{
name = "bitmaps";
packageId = "bitmaps";
}
{
name = "imbl-sized-chunks";
packageId = "imbl-sized-chunks";
}
{
name = "rand_core";
packageId = "rand_core";
}
{
name = "rand_xoshiro";
packageId = "rand_xoshiro";
}
{
name = "serde";
packageId = "serde";
optional = true;
}
];
buildDependencies = [
{
name = "version_check";
packageId = "version_check";
}
];
devDependencies = [
{
name = "serde";
packageId = "serde";
}
];
features = {
"arbitrary" = [ "dep:arbitrary" ];
"proptest" = [ "dep:proptest" ];
"quickcheck" = [ "dep:quickcheck" ];
"rayon" = [ "dep:rayon" ];
"refpool" = [ "dep:refpool" ];
"serde" = [ "dep:serde" ];
};
resolvedDefaultFeatures = [ "serde" ];
};
"imbl-sized-chunks" = rec {
crateName = "imbl-sized-chunks";
version = "0.1.1";
edition = "2021";
sha256 = "0xhhmb7aldl92hxkmsx10n59zxsa0hw4bvykc6jmq72lnah7x5g6";
authors = [
"Bodil Stokke <bodil@bodil.org>"
"Joe Neeman <joeneeman@gmail.com>"
];
dependencies = [
{
name = "bitmaps";
packageId = "bitmaps";
usesDefaultFeatures = false;
}
];
features = {
"arbitrary" = [ "dep:arbitrary" ];
"array-ops" = [ "dep:array-ops" ];
"default" = [ "std" ];
"refpool" = [ "dep:refpool" ];
"ringbuffer" = [ "array-ops" ];
};
resolvedDefaultFeatures = [ "default" "std" ];
};
"indexmap" = rec {
crateName = "indexmap";
version = "1.9.3";
edition = "2021";
sha256 = "16dxmy7yvk51wvnih3a3im6fp5lmx0wx76i03n06wyak6cwhw1xx";
dependencies = [
{
name = "hashbrown";
packageId = "hashbrown 0.12.3";
usesDefaultFeatures = false;
features = [ "raw" ];
}
];
buildDependencies = [
{
name = "autocfg";
packageId = "autocfg";
}
];
features = {
"arbitrary" = [ "dep:arbitrary" ];
"quickcheck" = [ "dep:quickcheck" ];
"rayon" = [ "dep:rayon" ];
"rustc-rayon" = [ "dep:rustc-rayon" ];
"serde" = [ "dep:serde" ];
"serde-1" = [ "serde" ];
};
resolvedDefaultFeatures = [ "std" ];
};
"itertools" = rec {
crateName = "itertools";
version = "0.12.0";
edition = "2018";
sha256 = "1c07gzdlc6a1c8p8jrvvw3gs52bss3y58cs2s21d9i978l36pnr5";
authors = [
"bluss"
];
dependencies = [
{
name = "either";
packageId = "either";
usesDefaultFeatures = false;
}
];
features = {
"default" = [ "use_std" ];
"use_std" = [ "use_alloc" "either/use_std" ];
};
resolvedDefaultFeatures = [ "default" "use_alloc" "use_std" ];
};
"itoa" = rec {
crateName = "itoa";
version = "1.0.10";
edition = "2018";
sha256 = "0k7xjfki7mnv6yzjrbnbnjllg86acmbnk4izz2jmm1hx2wd6v95i";
authors = [
"David Tolnay <dtolnay@gmail.com>"
];
features = {
"no-panic" = [ "dep:no-panic" ];
};
};
"js-sys" = rec {
crateName = "js-sys";
version = "0.3.69";
edition = "2018";
sha256 = "0v99rz97asnzapb0jsc3jjhvxpfxr7h7qd97yqyrf9i7viimbh99";
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 <loebel.marvin@gmail.com>"
];
features = {
"spin" = [ "dep:spin" ];
"spin_no_std" = [ "spin" ];
};
};
"lexical-core" = rec {
crateName = "lexical-core";
version = "0.8.5";
edition = "2018";
sha256 = "0ihf0x3vrk25fq3bv9q35m0xax0wmvwkh0j0pjm2yk4ddvh5vpic";
authors = [
"Alex Huszagh <ahuszagh@gmail.com>"
];
dependencies = [
{
name = "lexical-parse-float";
packageId = "lexical-parse-float";
optional = true;
usesDefaultFeatures = false;
}
{
name = "lexical-parse-integer";
packageId = "lexical-parse-integer";
optional = true;
usesDefaultFeatures = false;
}
{
name = "lexical-util";
packageId = "lexical-util";
usesDefaultFeatures = false;
}
{
name = "lexical-write-float";
packageId = "lexical-write-float";
optional = true;
usesDefaultFeatures = false;
}
{
name = "lexical-write-integer";
packageId = "lexical-write-integer";
optional = true;
usesDefaultFeatures = false;
}
];
features = {
"compact" = [ "lexical-write-integer/compact" "lexical-write-float/compact" "lexical-parse-integer/compact" "lexical-parse-float/compact" ];
"default" = [ "std" "write-integers" "write-floats" "parse-integers" "parse-floats" ];
"f128" = [ "lexical-util/f128" "lexical-parse-float/f128" "lexical-write-float/f128" ];
"f16" = [ "lexical-util/f16" "lexical-parse-float/f16" "lexical-write-float/f16" ];
"format" = [ "lexical-util/format" "lexical-parse-integer/format" "lexical-parse-float/format" "lexical-write-integer/format" "lexical-write-float/format" ];
"lexical-parse-float" = [ "dep:lexical-parse-float" ];
"lexical-parse-integer" = [ "dep:lexical-parse-integer" ];
"lexical-write-float" = [ "dep:lexical-write-float" ];
"lexical-write-integer" = [ "dep:lexical-write-integer" ];
"lint" = [ "lexical-util/lint" "lexical-write-integer/lint" "lexical-write-float/lint" "lexical-parse-integer/lint" "lexical-parse-float/lint" ];
"nightly" = [ "lexical-write-integer/nightly" "lexical-write-float/nightly" "lexical-parse-integer/nightly" "lexical-parse-float/nightly" ];
"parse-floats" = [ "lexical-parse-float" "parse" "floats" ];
"parse-integers" = [ "lexical-parse-integer" "parse" "integers" ];
"power-of-two" = [ "lexical-util/power-of-two" "lexical-write-integer/power-of-two" "lexical-write-float/power-of-two" "lexical-parse-integer/power-of-two" "lexical-parse-float/power-of-two" ];
"radix" = [ "lexical-util/radix" "lexical-write-integer/radix" "lexical-write-float/radix" "lexical-parse-integer/radix" "lexical-parse-float/radix" ];
"safe" = [ "lexical-write-integer/safe" "lexical-write-float/safe" "lexical-parse-integer/safe" "lexical-parse-float/safe" ];
"std" = [ "lexical-util/std" "lexical-write-integer/std" "lexical-write-float/std" "lexical-parse-integer/std" "lexical-parse-float/std" ];
"write-floats" = [ "lexical-write-float" "write" "floats" ];
"write-integers" = [ "lexical-write-integer" "write" "integers" ];
};
resolvedDefaultFeatures = [ "default" "floats" "format" "integers" "lexical-parse-float" "lexical-parse-integer" "lexical-write-float" "lexical-write-integer" "parse" "parse-floats" "parse-integers" "std" "write" "write-floats" "write-integers" ];
};
"lexical-parse-float" = rec {
crateName = "lexical-parse-float";
version = "0.8.5";
edition = "2018";
sha256 = "0py0gp8hlzcrlvjqmqlpl2v1as65iiqxq2xsabxvhc01pmg3lfv8";
authors = [
"Alex Huszagh <ahuszagh@gmail.com>"
];
dependencies = [
{
name = "lexical-parse-integer";
packageId = "lexical-parse-integer";
usesDefaultFeatures = false;
}
{
name = "lexical-util";
packageId = "lexical-util";
usesDefaultFeatures = false;
features = [ "parse-floats" ];
}
{
name = "static_assertions";
packageId = "static_assertions";
}
];
features = {
"compact" = [ "lexical-util/compact" "lexical-parse-integer/compact" ];
"default" = [ "std" ];
"f128" = [ "lexical-util/f128" ];
"f16" = [ "lexical-util/f16" ];
"format" = [ "lexical-util/format" "lexical-parse-integer/format" ];
"lint" = [ "lexical-util/lint" "lexical-parse-integer/lint" ];
"nightly" = [ "lexical-parse-integer/nightly" ];
"power-of-two" = [ "lexical-util/power-of-two" "lexical-parse-integer/power-of-two" ];
"radix" = [ "lexical-util/radix" "lexical-parse-integer/radix" "power-of-two" ];
"safe" = [ "lexical-parse-integer/safe" ];
"std" = [ "lexical-util/std" "lexical-parse-integer/std" ];
};
resolvedDefaultFeatures = [ "format" "std" ];
};
"lexical-parse-integer" = rec {
crateName = "lexical-parse-integer";
version = "0.8.6";
edition = "2018";
sha256 = "1sayji3mpvb2xsjq56qcq3whfz8px9a6fxk5v7v15hyhbr4982bd";
authors = [
"Alex Huszagh <ahuszagh@gmail.com>"
];
dependencies = [
{
name = "lexical-util";
packageId = "lexical-util";
usesDefaultFeatures = false;
features = [ "parse-integers" ];
}
{
name = "static_assertions";
packageId = "static_assertions";
}
];
features = {
"compact" = [ "lexical-util/compact" ];
"default" = [ "std" ];
"format" = [ "lexical-util/format" ];
"lint" = [ "lexical-util/lint" ];
"power-of-two" = [ "lexical-util/power-of-two" ];
"radix" = [ "lexical-util/radix" "power-of-two" ];
"std" = [ "lexical-util/std" ];
};
resolvedDefaultFeatures = [ "format" "std" ];
};
"lexical-util" = rec {
crateName = "lexical-util";
version = "0.8.5";
edition = "2018";
sha256 = "1z73qkv7yxhsbc4aiginn1dqmsj8jarkrdlyxc88g2gz2vzvjmaj";
authors = [
"Alex Huszagh <ahuszagh@gmail.com>"
];
dependencies = [
{
name = "static_assertions";
packageId = "static_assertions";
}
];
features = {
"default" = [ "std" ];
"f128" = [ "floats" ];
"f16" = [ "floats" ];
"parse-floats" = [ "parse" "floats" ];
"parse-integers" = [ "parse" "integers" ];
"radix" = [ "power-of-two" ];
"write-floats" = [ "write" "floats" ];
"write-integers" = [ "write" "integers" ];
};
resolvedDefaultFeatures = [ "floats" "format" "integers" "parse" "parse-floats" "parse-integers" "std" "write" "write-floats" "write-integers" ];
};
"lexical-write-float" = rec {
crateName = "lexical-write-float";
version = "0.8.5";
edition = "2018";
sha256 = "0qk825l0csvnksh9sywb51996cjc2bylq6rxjaiha7sqqjhvmjmc";
authors = [
"Alex Huszagh <ahuszagh@gmail.com>"
];
dependencies = [
{
name = "lexical-util";
packageId = "lexical-util";
usesDefaultFeatures = false;
features = [ "write-floats" ];
}
{
name = "lexical-write-integer";
packageId = "lexical-write-integer";
usesDefaultFeatures = false;
}
{
name = "static_assertions";
packageId = "static_assertions";
}
];
features = {
"compact" = [ "lexical-util/compact" "lexical-write-integer/compact" ];
"default" = [ "std" ];
"f128" = [ "lexical-util/f128" ];
"f16" = [ "lexical-util/f16" ];
"format" = [ "lexical-util/format" ];
"lint" = [ "lexical-util/lint" "lexical-write-integer/lint" ];
"nightly" = [ "lexical-write-integer/nightly" ];
"power-of-two" = [ "lexical-util/power-of-two" "lexical-write-integer/power-of-two" ];
"radix" = [ "lexical-util/radix" "lexical-write-integer/radix" "power-of-two" ];
"safe" = [ "lexical-write-integer/safe" ];
"std" = [ "lexical-util/std" "lexical-write-integer/std" ];
};
resolvedDefaultFeatures = [ "format" "std" ];
};
"lexical-write-integer" = rec {
crateName = "lexical-write-integer";
version = "0.8.5";
edition = "2018";
sha256 = "0ii4hmvqrg6pd4j9y1pkhkp0nw2wpivjzmljh6v6ca22yk8z7dp1";
authors = [
"Alex Huszagh <ahuszagh@gmail.com>"
];
dependencies = [
{
name = "lexical-util";
packageId = "lexical-util";
usesDefaultFeatures = false;
features = [ "write-integers" ];
}
{
name = "static_assertions";
packageId = "static_assertions";
}
];
features = {
"compact" = [ "lexical-util/compact" ];
"default" = [ "std" ];
"format" = [ "lexical-util/format" ];
"lint" = [ "lexical-util/lint" ];
"power-of-two" = [ "lexical-util/power-of-two" ];
"radix" = [ "lexical-util/radix" "power-of-two" ];
"std" = [ "lexical-util/std" ];
};
resolvedDefaultFeatures = [ "format" "std" ];
};
"libc" = rec {
crateName = "libc";
version = "0.2.152";
edition = "2015";
sha256 = "1rsnma7hnw22w7jh9yqg43slddvfbnfzrvm3s7s4kinbj1jvzqqk";
authors = [
"The Rust Project Developers"
];
features = {
"default" = [ "std" ];
"rustc-dep-of-std" = [ "align" "rustc-std-workspace-core" ];
"rustc-std-workspace-core" = [ "dep:rustc-std-workspace-core" ];
"use_std" = [ "std" ];
};
resolvedDefaultFeatures = [ "default" "std" ];
};
"libredox" = rec {
crateName = "libredox";
version = "0.0.1";
edition = "2021";
sha256 = "1s2fh4ikpp9xl0lsl01pi0n8pw1q9s3ld452vd8qh1v63v537j45";
authors = [
"4lDO2 <4lDO2@protonmail.com>"
];
dependencies = [
{
name = "bitflags";
packageId = "bitflags 2.4.1";
}
{
name = "libc";
packageId = "libc";
}
{
name = "redox_syscall";
packageId = "redox_syscall";
}
];
features = {
"default" = [ "scheme" "call" ];
"scheme" = [ "call" ];
};
resolvedDefaultFeatures = [ "call" ];
};
"log" = rec {
crateName = "log";
version = "0.4.20";
edition = "2015";
sha256 = "13rf7wphnwd61vazpxr7fiycin6cb1g8fmvgqg18i464p0y1drmm";
authors = [
"The Rust Project Developers"
];
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" "sval_ref" ];
"serde" = [ "dep:serde" ];
"sval" = [ "dep:sval" ];
"sval_ref" = [ "dep:sval_ref" ];
"value-bag" = [ "dep:value-bag" ];
};
};
"md-5" = rec {
crateName = "md-5";
version = "0.10.6";
edition = "2018";
sha256 = "1kvq5rnpm4fzwmyv5nmnxygdhhb2369888a06gdc9pxyrzh7x7nq";
libName = "md5";
authors = [
"RustCrypto Developers"
];
dependencies = [
{
name = "cfg-if";
packageId = "cfg-if";
}
{
name = "digest";
packageId = "digest";
}
];
devDependencies = [
{
name = "digest";
packageId = "digest";
features = [ "dev" ];
}
];
features = {
"asm" = [ "md5-asm" ];
"default" = [ "std" ];
"md5-asm" = [ "dep:md5-asm" ];
"oid" = [ "digest/oid" ];
"std" = [ "digest/std" ];
};
resolvedDefaultFeatures = [ "default" "std" ];
};
"memchr" = rec {
crateName = "memchr";
version = "2.7.1";
edition = "2021";
sha256 = "0jf1kicqa4vs9lyzj4v4y1p90q0dh87hvhsdd5xvhnp527sw8gaj";
authors = [
"Andrew Gallant <jamslam@gmail.com>"
"bluss"
];
features = {
"compiler_builtins" = [ "dep:compiler_builtins" ];
"core" = [ "dep:core" ];
"default" = [ "std" ];
"logging" = [ "dep:log" ];
"rustc-dep-of-std" = [ "core" "compiler_builtins" ];
"std" = [ "alloc" ];
"use_std" = [ "std" ];
};
resolvedDefaultFeatures = [ "alloc" "default" "std" ];
};
"memoffset" = rec {
crateName = "memoffset";
version = "0.9.0";
edition = "2015";
sha256 = "0v20ihhdzkfw1jx00a7zjpk2dcp5qjq6lz302nyqamd9c4f4nqss";
authors = [
"Gilad Naaman <gilad.naaman@gmail.com>"
];
buildDependencies = [
{
name = "autocfg";
packageId = "autocfg";
}
];
features = { };
resolvedDefaultFeatures = [ "default" ];
};
"nom8" = rec {
crateName = "nom8";
version = "0.2.0";
edition = "2018";
sha256 = "1y6jzabxyrl05vxnh63r66ac2fh0symg5fnynxm4ii3zkif580df";
dependencies = [
{
name = "memchr";
packageId = "memchr";
usesDefaultFeatures = false;
}
];
features = {
"default" = [ "std" ];
"std" = [ "alloc" "memchr/std" ];
"unstable-doc" = [ "alloc" "std" ];
};
resolvedDefaultFeatures = [ "alloc" "default" "std" ];
};
"once_cell" = rec {
crateName = "once_cell";
version = "1.19.0";
edition = "2021";
sha256 = "14kvw7px5z96dk4dwdm1r9cqhhy2cyj1l5n5b29mynbb8yr15nrz";
authors = [
"Aleksey Kladov <aleksey.kladov@gmail.com>"
];
features = {
"alloc" = [ "race" ];
"atomic-polyfill" = [ "critical-section" ];
"critical-section" = [ "dep:critical-section" "portable-atomic" ];
"default" = [ "std" ];
"parking_lot" = [ "dep:parking_lot_core" ];
"portable-atomic" = [ "dep:portable-atomic" ];
"std" = [ "alloc" ];
};
resolvedDefaultFeatures = [ "alloc" "default" "race" "std" ];
};
"os_str_bytes" = rec {
crateName = "os_str_bytes";
version = "6.6.1";
edition = "2021";
sha256 = "1885z1x4sm86v5p41ggrl49m58rbzzhd1kj72x46yy53p62msdg2";
authors = [
"dylni"
];
dependencies = [
{
name = "memchr";
packageId = "memchr";
optional = true;
}
];
features = {
"checked_conversions" = [ "conversions" ];
"default" = [ "memchr" "raw_os_str" ];
"memchr" = [ "dep:memchr" ];
"print_bytes" = [ "dep:print_bytes" ];
"uniquote" = [ "dep:uniquote" ];
};
resolvedDefaultFeatures = [ "conversions" "default" "memchr" "raw_os_str" ];
};
"path-clean" = rec {
crateName = "path-clean";
version = "0.1.0";
edition = "2015";
sha256 = "1pcgqxw0mgg3ha5hi5xkjhyjf488bw5rw1g3qlr9awbq4szh3fpc";
authors = [
"Dan Reeves <hey@danreev.es>"
];
};
"percent-encoding" = rec {
crateName = "percent-encoding";
version = "2.3.1";
edition = "2018";
sha256 = "0gi8wgx0dcy8rnv1kywdv98lwcx67hz0a0zwpib5v2i08r88y573";
authors = [
"The rust-url developers"
];
features = {
"default" = [ "std" ];
"std" = [ "alloc" ];
};
resolvedDefaultFeatures = [ "alloc" "std" ];
};
"proc-macro-error" = rec {
crateName = "proc-macro-error";
version = "1.0.4";
edition = "2018";
sha256 = "1373bhxaf0pagd8zkyd03kkx6bchzf6g0dkwrwzsnal9z47lj9fs";
authors = [
"CreepySkeleton <creepy-skeleton@yandex.ru>"
];
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 1.0.109";
optional = true;
usesDefaultFeatures = false;
}
];
buildDependencies = [
{
name = "version_check";
packageId = "version_check";
}
];
features = {
"default" = [ "syn-error" ];
"syn" = [ "dep:syn" ];
"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 <creepy-skeleton@yandex.ru>"
];
dependencies = [
{
name = "proc-macro2";
packageId = "proc-macro2";
}
{
name = "quote";
packageId = "quote";
}
];
buildDependencies = [
{
name = "version_check";
packageId = "version_check";
}
];
};
"proc-macro2" = rec {
crateName = "proc-macro2";
version = "1.0.76";
edition = "2021";
sha256 = "136cp0fgl6rg5ljm3b1xpc0bn0lyvagzzmxvbxgk5hxml36mdz4m";
authors = [
"David Tolnay <dtolnay@gmail.com>"
"Alex Crichton <alex@alexcrichton.com>"
];
dependencies = [
{
name = "unicode-ident";
packageId = "unicode-ident";
}
];
features = {
"default" = [ "proc-macro" ];
};
resolvedDefaultFeatures = [ "default" "proc-macro" ];
};
"quote" = rec {
crateName = "quote";
version = "1.0.35";
edition = "2018";
sha256 = "1vv8r2ncaz4pqdr78x7f138ka595sp2ncr1sa2plm4zxbsmwj7i9";
authors = [
"David Tolnay <dtolnay@gmail.com>"
];
dependencies = [
{
name = "proc-macro2";
packageId = "proc-macro2";
usesDefaultFeatures = false;
}
];
features = {
"default" = [ "proc-macro" ];
"proc-macro" = [ "proc-macro2/proc-macro" ];
};
resolvedDefaultFeatures = [ "default" "proc-macro" ];
};
"rand_core" = rec {
crateName = "rand_core";
version = "0.6.4";
edition = "2018";
sha256 = "0b4j2v4cb5krak1pv6kakv4sz6xcwbrmy2zckc32hsigbrwy82zc";
authors = [
"The Rand Project Developers"
"The Rust Project Developers"
];
features = {
"getrandom" = [ "dep:getrandom" ];
"serde" = [ "dep:serde" ];
"serde1" = [ "serde" ];
"std" = [ "alloc" "getrandom" "getrandom/std" ];
};
};
"rand_xoshiro" = rec {
crateName = "rand_xoshiro";
version = "0.6.0";
edition = "2018";
sha256 = "1ajsic84rzwz5qr0mzlay8vi17swqi684bqvwqyiim3flfrcv5vg";
authors = [
"The Rand Project Developers"
];
dependencies = [
{
name = "rand_core";
packageId = "rand_core";
}
];
features = {
"serde" = [ "dep:serde" ];
"serde1" = [ "serde" ];
};
};
"redox_syscall" = rec {
crateName = "redox_syscall";
version = "0.4.1";
edition = "2018";
sha256 = "1aiifyz5dnybfvkk4cdab9p2kmphag1yad6iknc7aszlxxldf8j7";
libName = "syscall";
authors = [
"Jeremy Soller <jackpot51@gmail.com>"
];
dependencies = [
{
name = "bitflags";
packageId = "bitflags 1.3.2";
}
];
features = {
"core" = [ "dep:core" ];
"rustc-dep-of-std" = [ "core" "bitflags/rustc-dep-of-std" ];
};
};
"redox_users" = rec {
crateName = "redox_users";
version = "0.4.4";
edition = "2021";
sha256 = "1d1c7dhbb62sh8jrq9dhvqcyxqsh3wg8qknsi94iwq3r0wh7k151";
authors = [
"Jose Narvaez <goyox86@gmail.com>"
"Wesley Hershberger <mggmugginsmc@gmail.com>"
];
dependencies = [
{
name = "getrandom";
packageId = "getrandom";
features = [ "std" ];
}
{
name = "libredox";
packageId = "libredox";
usesDefaultFeatures = false;
features = [ "call" ];
}
{
name = "thiserror";
packageId = "thiserror";
}
];
features = {
"auth" = [ "rust-argon2" "zeroize" ];
"default" = [ "auth" ];
"rust-argon2" = [ "dep:rust-argon2" ];
"zeroize" = [ "dep:zeroize" ];
};
};
"regex" = rec {
crateName = "regex";
version = "1.10.2";
edition = "2021";
sha256 = "0hxkd814n4irind8im5c9am221ri6bprx49nc7yxv02ykhd9a2rq";
authors = [
"The Rust Project Developers"
"Andrew Gallant <jamslam@gmail.com>"
];
dependencies = [
{
name = "aho-corasick";
packageId = "aho-corasick";
optional = true;
}
{
name = "memchr";
packageId = "memchr";
optional = true;
}
{
name = "regex-automata";
packageId = "regex-automata";
usesDefaultFeatures = false;
features = [ "alloc" "syntax" "meta" "nfa-pikevm" ];
}
{
name = "regex-syntax";
packageId = "regex-syntax";
usesDefaultFeatures = false;
}
];
features = {
"default" = [ "std" "perf" "unicode" "regex-syntax/default" ];
"logging" = [ "aho-corasick?/logging" "memchr?/logging" "regex-automata/logging" ];
"perf" = [ "perf-cache" "perf-dfa" "perf-onepass" "perf-backtrack" "perf-inline" "perf-literal" ];
"perf-backtrack" = [ "regex-automata/nfa-backtrack" ];
"perf-dfa" = [ "regex-automata/hybrid" ];
"perf-dfa-full" = [ "regex-automata/dfa-build" "regex-automata/dfa-search" ];
"perf-inline" = [ "regex-automata/perf-inline" ];
"perf-literal" = [ "dep:aho-corasick" "dep:memchr" "regex-automata/perf-literal" ];
"perf-onepass" = [ "regex-automata/dfa-onepass" ];
"std" = [ "aho-corasick?/std" "memchr?/std" "regex-automata/std" "regex-syntax/std" ];
"unicode" = [ "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" "regex-automata/unicode" "regex-syntax/unicode" ];
"unicode-age" = [ "regex-automata/unicode-age" "regex-syntax/unicode-age" ];
"unicode-bool" = [ "regex-automata/unicode-bool" "regex-syntax/unicode-bool" ];
"unicode-case" = [ "regex-automata/unicode-case" "regex-syntax/unicode-case" ];
"unicode-gencat" = [ "regex-automata/unicode-gencat" "regex-syntax/unicode-gencat" ];
"unicode-perl" = [ "regex-automata/unicode-perl" "regex-automata/unicode-word-boundary" "regex-syntax/unicode-perl" ];
"unicode-script" = [ "regex-automata/unicode-script" "regex-syntax/unicode-script" ];
"unicode-segment" = [ "regex-automata/unicode-segment" "regex-syntax/unicode-segment" ];
"unstable" = [ "pattern" ];
"use_std" = [ "std" ];
};
resolvedDefaultFeatures = [ "default" "perf" "perf-backtrack" "perf-cache" "perf-dfa" "perf-inline" "perf-literal" "perf-onepass" "std" "unicode" "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" ];
};
"regex-automata" = rec {
crateName = "regex-automata";
version = "0.4.3";
edition = "2021";
sha256 = "0gs8q9yhd3kcg4pr00ag4viqxnh5l7jpyb9fsfr8hzh451w4r02z";
authors = [
"The Rust Project Developers"
"Andrew Gallant <jamslam@gmail.com>"
];
dependencies = [
{
name = "aho-corasick";
packageId = "aho-corasick";
optional = true;
usesDefaultFeatures = false;
}
{
name = "memchr";
packageId = "memchr";
optional = true;
usesDefaultFeatures = false;
}
{
name = "regex-syntax";
packageId = "regex-syntax";
optional = true;
usesDefaultFeatures = false;
}
];
features = {
"default" = [ "std" "syntax" "perf" "unicode" "meta" "nfa" "dfa" "hybrid" ];
"dfa" = [ "dfa-build" "dfa-search" "dfa-onepass" ];
"dfa-build" = [ "nfa-thompson" "dfa-search" ];
"dfa-onepass" = [ "nfa-thompson" ];
"hybrid" = [ "alloc" "nfa-thompson" ];
"internal-instrument" = [ "internal-instrument-pikevm" ];
"internal-instrument-pikevm" = [ "logging" "std" ];
"logging" = [ "dep:log" "aho-corasick?/logging" "memchr?/logging" ];
"meta" = [ "syntax" "nfa-pikevm" ];
"nfa" = [ "nfa-thompson" "nfa-pikevm" "nfa-backtrack" ];
"nfa-backtrack" = [ "nfa-thompson" ];
"nfa-pikevm" = [ "nfa-thompson" ];
"nfa-thompson" = [ "alloc" ];
"perf" = [ "perf-inline" "perf-literal" ];
"perf-literal" = [ "perf-literal-substring" "perf-literal-multisubstring" ];
"perf-literal-multisubstring" = [ "std" "dep:aho-corasick" ];
"perf-literal-substring" = [ "aho-corasick?/perf-literal" "dep:memchr" ];
"std" = [ "regex-syntax?/std" "memchr?/std" "aho-corasick?/std" "alloc" ];
"syntax" = [ "dep:regex-syntax" "alloc" ];
"unicode" = [ "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" "unicode-word-boundary" "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" ];
};
resolvedDefaultFeatures = [ "alloc" "dfa-onepass" "dfa-search" "hybrid" "meta" "nfa-backtrack" "nfa-pikevm" "nfa-thompson" "perf-inline" "perf-literal" "perf-literal-multisubstring" "perf-literal-substring" "std" "syntax" "unicode" "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" "unicode-word-boundary" ];
};
"regex-syntax" = rec {
crateName = "regex-syntax";
version = "0.8.2";
edition = "2021";
sha256 = "17rd2s8xbiyf6lb4aj2nfi44zqlj98g2ays8zzj2vfs743k79360";
authors = [
"The Rust Project Developers"
"Andrew Gallant <jamslam@gmail.com>"
];
features = {
"arbitrary" = [ "dep:arbitrary" ];
"default" = [ "std" "unicode" ];
"unicode" = [ "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" ];
};
resolvedDefaultFeatures = [ "default" "std" "unicode" "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" ];
};
"rnix" = rec {
crateName = "rnix";
version = "0.11.0";
edition = "2021";
sha256 = "0pybq9gp4b7lp0066236jpqi9lgb1bzvqc9axymwrq3hxgdwwddv";
authors = [
"jD91mZM2 <me@krake.one>"
];
dependencies = [
{
name = "rowan";
packageId = "rowan";
}
];
};
"route-recognizer" = rec {
crateName = "route-recognizer";
version = "0.3.1";
edition = "2018";
sha256 = "0ikp3blbina00jdbifxw1c9whg6mljli24lq5pv82iar53xr9axg";
authors = [
"wycats"
"rustasync"
];
};
"rowan" = rec {
crateName = "rowan";
version = "0.15.15";
edition = "2021";
sha256 = "0j9b340gsyf2h7v1q9xb4mqyqp4qbyzlbk1r9zn2mzyclyl8z99j";
authors = [
"Aleksey Kladov <aleksey.kladov@gmail.com>"
];
dependencies = [
{
name = "countme";
packageId = "countme";
}
{
name = "hashbrown";
packageId = "hashbrown 0.14.3";
usesDefaultFeatures = false;
features = [ "inline-more" ];
}
{
name = "memoffset";
packageId = "memoffset";
}
{
name = "rustc-hash";
packageId = "rustc-hash";
}
{
name = "text-size";
packageId = "text-size";
}
];
features = {
"serde" = [ "dep:serde" ];
"serde1" = [ "serde" "text-size/serde" ];
};
};
"rustc-hash" = rec {
crateName = "rustc-hash";
version = "1.1.0";
edition = "2015";
sha256 = "1qkc5khrmv5pqi5l5ca9p5nl5hs742cagrndhbrlk3dhlrx3zm08";
authors = [
"The Rust Project Developers"
];
features = {
"default" = [ "std" ];
};
resolvedDefaultFeatures = [ "default" "std" ];
};
"ryu" = rec {
crateName = "ryu";
version = "1.0.16";
edition = "2018";
sha256 = "0k7b90xr48ag5bzmfjp82rljasw2fx28xr3bg1lrpx7b5sljm3gr";
authors = [
"David Tolnay <dtolnay@gmail.com>"
];
features = {
"no-panic" = [ "dep:no-panic" ];
};
};
"scoped-tls-hkt" = rec {
crateName = "scoped-tls-hkt";
version = "0.1.4";
edition = "2018";
sha256 = "1p6x35cffxr6y293ip4m8pnf60bbgyvg06q7rb3gdn8h6ifpdp1x";
authors = [
"Diggory Blake <diggsey@googlemail.com>"
];
};
"serde" = rec {
crateName = "serde";
version = "1.0.203";
edition = "2018";
sha256 = "1500ghq198n6py5anvz5qbqagd9h1hq04f4qpsvjzrvix56snlvj";
authors = [
"Erick Tryzelaar <erick.tryzelaar@gmail.com>"
"David Tolnay <dtolnay@gmail.com>"
];
dependencies = [
{
name = "serde_derive";
packageId = "serde_derive";
optional = true;
}
{
name = "serde_derive";
packageId = "serde_derive";
target = { target, features }: false;
}
];
devDependencies = [
{
name = "serde_derive";
packageId = "serde_derive";
}
];
features = {
"default" = [ "std" ];
"derive" = [ "serde_derive" ];
"serde_derive" = [ "dep:serde_derive" ];
};
resolvedDefaultFeatures = [ "alloc" "default" "derive" "rc" "serde_derive" "std" ];
};
"serde-wasm-bindgen" = rec {
crateName = "serde-wasm-bindgen";
version = "0.3.1";
edition = "2018";
sha256 = "1xzh1a3rhapirlca4rbvh6bycphxg5yjmdwjsqij3hl6wpl6b0v1";
authors = [
"Ingvar Stepanyan <me@rreverser.com>"
];
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_derive" = rec {
crateName = "serde_derive";
version = "1.0.203";
edition = "2015";
sha256 = "1fmmqmfza3mwxb1v80737dj01gznrh8mhgqgylkndx5npq7bq32h";
procMacro = true;
authors = [
"Erick Tryzelaar <erick.tryzelaar@gmail.com>"
"David Tolnay <dtolnay@gmail.com>"
];
dependencies = [
{
name = "proc-macro2";
packageId = "proc-macro2";
usesDefaultFeatures = false;
features = [ "proc-macro" ];
}
{
name = "quote";
packageId = "quote";
usesDefaultFeatures = false;
features = [ "proc-macro" ];
}
{
name = "syn";
packageId = "syn 2.0.48";
usesDefaultFeatures = false;
features = [ "clone-impls" "derive" "parsing" "printing" "proc-macro" ];
}
];
features = { };
resolvedDefaultFeatures = [ "default" ];
};
"serde_json" = rec {
crateName = "serde_json";
version = "1.0.111";
edition = "2021";
sha256 = "1x441azvvdy6x8am4bvkxhswhzw5cr8ml0cqspnihvri8bx4cvhp";
authors = [
"Erick Tryzelaar <erick.tryzelaar@gmail.com>"
"David Tolnay <dtolnay@gmail.com>"
];
dependencies = [
{
name = "itoa";
packageId = "itoa";
}
{
name = "ryu";
packageId = "ryu";
}
{
name = "serde";
packageId = "serde";
usesDefaultFeatures = false;
}
];
devDependencies = [
{
name = "serde";
packageId = "serde";
features = [ "derive" ];
}
];
features = {
"alloc" = [ "serde/alloc" ];
"default" = [ "std" ];
"indexmap" = [ "dep:indexmap" ];
"preserve_order" = [ "indexmap" "std" ];
"std" = [ "serde/std" ];
};
resolvedDefaultFeatures = [ "default" "std" ];
};
"serde_spanned" = rec {
crateName = "serde_spanned";
version = "0.6.5";
edition = "2021";
sha256 = "1hgh6s3jjwyzhfk3xwb6pnnr1misq9nflwq0f026jafi37s24dpb";
dependencies = [
{
name = "serde";
packageId = "serde";
optional = true;
}
];
devDependencies = [
{
name = "serde";
packageId = "serde";
}
];
features = {
"serde" = [ "dep:serde" ];
};
resolvedDefaultFeatures = [ "serde" ];
};
"serde_urlencoded" = rec {
crateName = "serde_urlencoded";
version = "0.7.1";
edition = "2018";
sha256 = "1zgklbdaysj3230xivihs30qi5vkhigg323a9m62k8jwf4a1qjfk";
authors = [
"Anthony Ramine <n.oxyde@gmail.com>"
];
dependencies = [
{
name = "form_urlencoded";
packageId = "form_urlencoded";
}
{
name = "itoa";
packageId = "itoa";
}
{
name = "ryu";
packageId = "ryu";
}
{
name = "serde";
packageId = "serde";
}
];
};
"sha1" = rec {
crateName = "sha1";
version = "0.10.6";
edition = "2018";
sha256 = "1fnnxlfg08xhkmwf2ahv634as30l1i3xhlhkvxflmasi5nd85gz3";
authors = [
"RustCrypto Developers"
];
dependencies = [
{
name = "cfg-if";
packageId = "cfg-if";
}
{
name = "cpufeatures";
packageId = "cpufeatures";
target = { target, features }: (("aarch64" == target."arch" or null) || ("x86" == target."arch" or null) || ("x86_64" == target."arch" or null));
}
{
name = "digest";
packageId = "digest";
}
];
devDependencies = [
{
name = "digest";
packageId = "digest";
features = [ "dev" ];
}
];
features = {
"asm" = [ "sha1-asm" ];
"default" = [ "std" ];
"oid" = [ "digest/oid" ];
"sha1-asm" = [ "dep:sha1-asm" ];
"std" = [ "digest/std" ];
};
resolvedDefaultFeatures = [ "default" "std" ];
};
"sha2" = rec {
crateName = "sha2";
version = "0.10.8";
edition = "2018";
sha256 = "1j1x78zk9il95w9iv46dh9wm73r6xrgj32y6lzzw7bxws9dbfgbr";
authors = [
"RustCrypto Developers"
];
dependencies = [
{
name = "cfg-if";
packageId = "cfg-if";
}
{
name = "cpufeatures";
packageId = "cpufeatures";
target = { target, features }: (("aarch64" == target."arch" or null) || ("x86_64" == target."arch" or null) || ("x86" == target."arch" or null));
}
{
name = "digest";
packageId = "digest";
}
];
devDependencies = [
{
name = "digest";
packageId = "digest";
features = [ "dev" ];
}
];
features = {
"asm" = [ "sha2-asm" ];
"asm-aarch64" = [ "asm" ];
"default" = [ "std" ];
"oid" = [ "digest/oid" ];
"sha2-asm" = [ "dep:sha2-asm" ];
"std" = [ "digest/std" ];
};
resolvedDefaultFeatures = [ "default" "std" ];
};
"slab" = rec {
crateName = "slab";
version = "0.4.9";
edition = "2018";
sha256 = "0rxvsgir0qw5lkycrqgb1cxsvxzjv9bmx73bk5y42svnzfba94lg";
authors = [
"Carl Lerche <me@carllerche.com>"
];
buildDependencies = [
{
name = "autocfg";
packageId = "autocfg";
}
];
features = {
"default" = [ "std" ];
"serde" = [ "dep:serde" ];
};
resolvedDefaultFeatures = [ "default" "std" ];
};
"smol_str" = rec {
crateName = "smol_str";
version = "0.2.0";
edition = "2018";
sha256 = "1779hpx5ipbcvkdj5zw8zqk3ynn160qvls1gkcr54hwsprmjw8bl";
authors = [
"Aleksey Kladov <aleksey.kladov@gmail.com>"
];
dependencies = [
{
name = "serde";
packageId = "serde";
optional = true;
usesDefaultFeatures = false;
}
];
devDependencies = [
{
name = "serde";
packageId = "serde";
features = [ "derive" ];
}
];
features = {
"arbitrary" = [ "dep:arbitrary" ];
"default" = [ "std" ];
"serde" = [ "dep:serde" ];
"std" = [ "serde?/std" ];
};
resolvedDefaultFeatures = [ "default" "std" ];
};
"static_assertions" = rec {
crateName = "static_assertions";
version = "1.1.0";
edition = "2015";
sha256 = "0gsl6xmw10gvn3zs1rv99laj5ig7ylffnh71f9l34js4nr4r7sx2";
authors = [
"Nikolai Vazquez"
];
features = { };
};
"syn 1.0.109" = rec {
crateName = "syn";
version = "1.0.109";
edition = "2018";
sha256 = "0ds2if4600bd59wsv7jjgfkayfzy3hnazs394kz6zdkmna8l3dkj";
authors = [
"David Tolnay <dtolnay@gmail.com>"
];
dependencies = [
{
name = "proc-macro2";
packageId = "proc-macro2";
usesDefaultFeatures = false;
}
{
name = "quote";
packageId = "quote";
optional = true;
usesDefaultFeatures = false;
}
{
name = "unicode-ident";
packageId = "unicode-ident";
}
];
features = {
"default" = [ "derive" "parsing" "printing" "clone-impls" "proc-macro" ];
"printing" = [ "quote" ];
"proc-macro" = [ "proc-macro2/proc-macro" "quote/proc-macro" ];
"quote" = [ "dep:quote" ];
"test" = [ "syn-test-suite/all-features" ];
};
resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "extra-traits" "full" "parsing" "printing" "proc-macro" "quote" "visit" "visit-mut" ];
};
"syn 2.0.48" = rec {
crateName = "syn";
version = "2.0.48";
edition = "2021";
sha256 = "0gqgfygmrxmp8q32lia9p294kdd501ybn6kn2h4gqza0irik2d8g";
authors = [
"David Tolnay <dtolnay@gmail.com>"
];
dependencies = [
{
name = "proc-macro2";
packageId = "proc-macro2";
usesDefaultFeatures = false;
}
{
name = "quote";
packageId = "quote";
optional = true;
usesDefaultFeatures = false;
}
{
name = "unicode-ident";
packageId = "unicode-ident";
}
];
features = {
"default" = [ "derive" "parsing" "printing" "clone-impls" "proc-macro" ];
"printing" = [ "quote" ];
"proc-macro" = [ "proc-macro2/proc-macro" "quote/proc-macro" ];
"quote" = [ "dep:quote" ];
"test" = [ "syn-test-suite/all-features" ];
};
resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "full" "parsing" "printing" "proc-macro" "quote" "visit" ];
};
"tabwriter" = rec {
crateName = "tabwriter";
version = "1.4.0";
edition = "2021";
sha256 = "1xp5j7v8jsk92zcmiyh4ya9akhrchjvc595vwcvxrxk49wn2h9x3";
authors = [
"Andrew Gallant <jamslam@gmail.com>"
];
dependencies = [
{
name = "unicode-width";
packageId = "unicode-width";
}
];
features = { };
resolvedDefaultFeatures = [ "default" ];
};
"termcolor" = rec {
crateName = "termcolor";
version = "1.4.1";
edition = "2018";
sha256 = "0mappjh3fj3p2nmrg4y7qv94rchwi9mzmgmfflr8p2awdj7lyy86";
authors = [
"Andrew Gallant <jamslam@gmail.com>"
];
dependencies = [
{
name = "winapi-util";
packageId = "winapi-util";
target = { target, features }: (target."windows" or false);
}
];
};
"text-size" = rec {
crateName = "text-size";
version = "1.1.1";
edition = "2018";
sha256 = "0cwjbkl7w3xc8mnkhg1nwij6p5y2qkcfldgss8ddnawvhf3s32pi";
authors = [
"Aleksey Kladov <aleksey.kladov@gmail.com>"
"Christopher Durham (CAD97) <cad97@cad97.com>"
];
features = {
"serde" = [ "dep:serde" ];
};
};
"thiserror" = rec {
crateName = "thiserror";
version = "1.0.56";
edition = "2021";
sha256 = "1b9hnzngjan4d89zjs16i01bcpcnvdwklyh73lj16xk28p37hhym";
authors = [
"David Tolnay <dtolnay@gmail.com>"
];
dependencies = [
{
name = "thiserror-impl";
packageId = "thiserror-impl";
}
];
};
"thiserror-impl" = rec {
crateName = "thiserror-impl";
version = "1.0.56";
edition = "2021";
sha256 = "0w9ldp8fa574ilz4dn7y7scpcq66vdjy59qal8qdpwsh7faal3zs";
procMacro = true;
authors = [
"David Tolnay <dtolnay@gmail.com>"
];
dependencies = [
{
name = "proc-macro2";
packageId = "proc-macro2";
}
{
name = "quote";
packageId = "quote";
}
{
name = "syn";
packageId = "syn 2.0.48";
}
];
};
"toml" = rec {
crateName = "toml";
version = "0.6.0";
edition = "2021";
sha256 = "05zjz69wjymp9yrgccg5vhvxpf855rgn23vl1yvri4nwwj8difag";
authors = [
"Alex Crichton <alex@alexcrichton.com>"
];
dependencies = [
{
name = "serde";
packageId = "serde";
}
{
name = "serde_spanned";
packageId = "serde_spanned";
features = [ "serde" ];
}
{
name = "toml_datetime";
packageId = "toml_datetime";
features = [ "serde" ];
}
{
name = "toml_edit";
packageId = "toml_edit";
optional = true;
features = [ "serde" ];
}
];
devDependencies = [
{
name = "serde";
packageId = "serde";
features = [ "derive" ];
}
];
features = {
"default" = [ "parse" "display" ];
"display" = [ "dep:toml_edit" ];
"indexmap" = [ "dep:indexmap" ];
"parse" = [ "dep:toml_edit" ];
"preserve_order" = [ "indexmap" ];
};
resolvedDefaultFeatures = [ "default" "display" "parse" ];
};
"toml_datetime" = rec {
crateName = "toml_datetime";
version = "0.5.1";
edition = "2021";
sha256 = "1xcw3kyklh3s2gxp65ma26rgkl7505la4xx1r55kfgcfmikz8ls5";
authors = [
"Alex Crichton <alex@alexcrichton.com>"
];
dependencies = [
{
name = "serde";
packageId = "serde";
optional = true;
}
];
features = {
"serde" = [ "dep:serde" ];
};
resolvedDefaultFeatures = [ "serde" ];
};
"toml_edit" = rec {
crateName = "toml_edit";
version = "0.18.1";
edition = "2021";
sha256 = "0ax1bwzd4xclpids3b69nd1nxqi3x3qa4ymz51jbrp6hsy6rvian";
authors = [
"Andronik Ordian <write@reusable.software>"
"Ed Page <eopage@gmail.com>"
];
dependencies = [
{
name = "indexmap";
packageId = "indexmap";
}
{
name = "nom8";
packageId = "nom8";
}
{
name = "serde";
packageId = "serde";
optional = true;
}
{
name = "serde_spanned";
packageId = "serde_spanned";
optional = true;
features = [ "serde" ];
}
{
name = "toml_datetime";
packageId = "toml_datetime";
}
];
features = {
"easy" = [ "serde" ];
"perf" = [ "dep:kstring" ];
"serde" = [ "dep:serde" "toml_datetime/serde" "dep:serde_spanned" ];
};
resolvedDefaultFeatures = [ "default" "serde" ];
};
"tvix-eval" = rec {
crateName = "tvix-eval";
version = "0.1.0";
edition = "2021";
src = lib.cleanSourceWith { filter = sourceFilter; src = ../../tvix/eval; };
libName = "tvix_eval";
dependencies = [
{
name = "bstr";
packageId = "bstr";
features = [ "serde" ];
}
{
name = "bytes";
packageId = "bytes";
}
{
name = "codemap";
packageId = "codemap";
}
{
name = "codemap-diagnostic";
packageId = "codemap-diagnostic";
}
{
name = "data-encoding";
packageId = "data-encoding";
}
{
name = "dirs";
packageId = "dirs";
}
{
name = "genawaiter";
packageId = "genawaiter";
usesDefaultFeatures = false;
}
{
name = "imbl";
packageId = "imbl";
features = [ "serde" ];
}
{
name = "itertools";
packageId = "itertools";
}
{
name = "lazy_static";
packageId = "lazy_static";
}
{
name = "lexical-core";
packageId = "lexical-core";
features = [ "format" "parse-floats" ];
}
{
name = "md-5";
packageId = "md-5";
}
{
name = "os_str_bytes";
packageId = "os_str_bytes";
features = [ "conversions" ];
}
{
name = "path-clean";
packageId = "path-clean";
}
{
name = "regex";
packageId = "regex";
}
{
name = "rnix";
packageId = "rnix";
}
{
name = "rowan";
packageId = "rowan";
}
{
name = "serde";
packageId = "serde";
features = [ "rc" "derive" ];
}
{
name = "serde_json";
packageId = "serde_json";
}
{
name = "sha1";
packageId = "sha1";
}
{
name = "sha2";
packageId = "sha2";
}
{
name = "smol_str";
packageId = "smol_str";
}
{
name = "tabwriter";
packageId = "tabwriter";
}
{
name = "toml";
packageId = "toml";
}
{
name = "tvix-eval-builtin-macros";
packageId = "tvix-eval-builtin-macros";
rename = "builtin-macros";
}
];
devDependencies = [
{
name = "itertools";
packageId = "itertools";
}
];
features = {
"arbitrary" = [ "proptest" "test-strategy" "imbl/proptest" ];
"default" = [ "impure" "arbitrary" "nix_tests" ];
"proptest" = [ "dep:proptest" ];
"test-strategy" = [ "dep:test-strategy" ];
};
};
"tvix-eval-builtin-macros" = rec {
crateName = "tvix-eval-builtin-macros";
version = "0.0.1";
edition = "2021";
src = lib.cleanSourceWith { filter = sourceFilter; src = ../../tvix/eval/builtin-macros; };
procMacro = true;
authors = [
"Griffin Smith <root@gws.fyi>"
];
dependencies = [
{
name = "proc-macro2";
packageId = "proc-macro2";
}
{
name = "quote";
packageId = "quote";
}
{
name = "syn";
packageId = "syn 1.0.109";
features = [ "full" "parsing" "printing" "visit" "visit-mut" "extra-traits" ];
}
];
};
"tvixbolt" = rec {
crateName = "tvixbolt";
version = "0.1.0";
edition = "2021";
src = lib.cleanSourceWith { filter = sourceFilter; src = ./.; };
type = [ "cdylib" ];
dependencies = [
{
name = "serde";
packageId = "serde";
features = [ "derive" ];
}
{
name = "tvix-eval";
packageId = "tvix-eval";
usesDefaultFeatures = false;
}
{
name = "wasm-bindgen";
packageId = "wasm-bindgen";
}
{
name = "web-sys";
packageId = "web-sys";
features = [ "HtmlDetailsElement" ];
}
{
name = "yew";
packageId = "yew";
}
{
name = "yew-router";
packageId = "yew-router";
}
];
};
"typenum" = rec {
crateName = "typenum";
version = "1.17.0";
edition = "2018";
sha256 = "09dqxv69m9lj9zvv6xw5vxaqx15ps0vxyy5myg33i0kbqvq0pzs2";
build = "build/main.rs";
authors = [
"Paho Lurie-Gregg <paho@paholg.com>"
"Andre Bogus <bogusandre@gmail.com>"
];
features = {
"scale-info" = [ "dep:scale-info" ];
"scale_info" = [ "scale-info/derive" ];
};
};
"unicode-ident" = rec {
crateName = "unicode-ident";
version = "1.0.12";
edition = "2018";
sha256 = "0jzf1znfpb2gx8nr8mvmyqs1crnv79l57nxnbiszc7xf7ynbjm1k";
authors = [
"David Tolnay <dtolnay@gmail.com>"
];
};
"unicode-width" = rec {
crateName = "unicode-width";
version = "0.1.11";
edition = "2015";
sha256 = "11ds4ydhg8g7l06rlmh712q41qsrd0j0h00n1jm74kww3kqk65z5";
authors = [
"kwantam <kwantam@gmail.com>"
"Manish Goregaokar <manishsmail@gmail.com>"
];
features = {
"compiler_builtins" = [ "dep:compiler_builtins" ];
"core" = [ "dep:core" ];
"rustc-dep-of-std" = [ "std" "core" "compiler_builtins" ];
"std" = [ "dep:std" ];
};
resolvedDefaultFeatures = [ "default" ];
};
"version_check" = rec {
crateName = "version_check";
version = "0.9.4";
edition = "2015";
sha256 = "0gs8grwdlgh0xq660d7wr80x14vxbizmd8dbp29p2pdncx8lp1s9";
authors = [
"Sergio Benitez <sb@sergio.bz>"
];
};
"wasi" = rec {
crateName = "wasi";
version = "0.11.0+wasi-snapshot-preview1";
edition = "2018";
sha256 = "08z4hxwkpdpalxjps1ai9y7ihin26y9f476i53dv98v45gkqg3cw";
authors = [
"The Cranelift Project Developers"
];
features = {
"compiler_builtins" = [ "dep:compiler_builtins" ];
"core" = [ "dep:core" ];
"default" = [ "std" ];
"rustc-dep-of-std" = [ "compiler_builtins" "core" "rustc-std-workspace-alloc" ];
"rustc-std-workspace-alloc" = [ "dep:rustc-std-workspace-alloc" ];
};
};
"wasm-bindgen" = rec {
crateName = "wasm-bindgen";
version = "0.2.92";
edition = "2018";
sha256 = "1a4mcw13nsk3fr8fxjzf9kk1wj88xkfsmnm0pjraw01ryqfm7qjb";
authors = [
"The wasm-bindgen Developers"
];
dependencies = [
{
name = "cfg-if";
packageId = "cfg-if";
}
{
name = "wasm-bindgen-macro";
packageId = "wasm-bindgen-macro";
}
];
features = {
"default" = [ "spans" "std" ];
"enable-interning" = [ "std" ];
"gg-alloc" = [ "wasm-bindgen-test/gg-alloc" ];
"serde" = [ "dep:serde" ];
"serde-serialize" = [ "serde" "serde_json" "std" ];
"serde_json" = [ "dep:serde_json" ];
"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" "spans" "std" ];
};
"wasm-bindgen-backend" = rec {
crateName = "wasm-bindgen-backend";
version = "0.2.92";
edition = "2018";
sha256 = "1nj7wxbi49f0rw9d44rjzms26xlw6r76b2mrggx8jfbdjrxphkb1";
authors = [
"The wasm-bindgen Developers"
];
dependencies = [
{
name = "bumpalo";
packageId = "bumpalo";
}
{
name = "log";
packageId = "log";
}
{
name = "once_cell";
packageId = "once_cell";
}
{
name = "proc-macro2";
packageId = "proc-macro2";
}
{
name = "quote";
packageId = "quote";
}
{
name = "syn";
packageId = "syn 2.0.48";
features = [ "full" ];
}
{
name = "wasm-bindgen-shared";
packageId = "wasm-bindgen-shared";
}
];
features = {
"extra-traits" = [ "syn/extra-traits" ];
};
resolvedDefaultFeatures = [ "spans" ];
};
"wasm-bindgen-futures" = rec {
crateName = "wasm-bindgen-futures";
version = "0.4.39";
edition = "2018";
sha256 = "04lsxpw4jqfwh7c0crzx0smj52nvwp1w3bh4098sq90149da2dmc";
authors = [
"The wasm-bindgen Developers"
];
dependencies = [
{
name = "cfg-if";
packageId = "cfg-if";
}
{
name = "js-sys";
packageId = "js-sys";
}
{
name = "wasm-bindgen";
packageId = "wasm-bindgen";
}
{
name = "web-sys";
packageId = "web-sys";
target = { target, features }: (builtins.elem "atomics" targetFeatures);
features = [ "MessageEvent" "Worker" ];
}
];
features = {
"futures-core" = [ "dep:futures-core" ];
"futures-core-03-stream" = [ "futures-core" ];
};
};
"wasm-bindgen-macro" = rec {
crateName = "wasm-bindgen-macro";
version = "0.2.92";
edition = "2018";
sha256 = "09npa1srjjabd6nfph5yc03jb26sycjlxhy0c2a1pdrpx4yq5y51";
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.92";
edition = "2018";
sha256 = "1dqv2xs8zcyw4kjgzj84bknp2h76phmsb3n7j6hn396h4ssifkz9";
authors = [
"The wasm-bindgen Developers"
];
dependencies = [
{
name = "proc-macro2";
packageId = "proc-macro2";
}
{
name = "quote";
packageId = "quote";
}
{
name = "syn";
packageId = "syn 2.0.48";
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.92";
edition = "2018";
links = "wasm_bindgen";
sha256 = "15kyavsrna2cvy30kg03va257fraf9x00ny554vxngvpyaa0q6dg";
authors = [
"The wasm-bindgen Developers"
];
};
"web-sys" = rec {
crateName = "web-sys";
version = "0.3.69";
edition = "2018";
sha256 = "1vqkxk935xa8zcnsi4bd88sb267ly2i24xl1yiq26d1n32hskbvp";
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" ];
"CanvasCaptureMediaStreamTrack" = [ "EventTarget" "MediaStreamTrack" ];
"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" ];
"FileSystemDirectoryHandle" = [ "FileSystemHandle" ];
"FileSystemFileEntry" = [ "FileSystemEntry" ];
"FileSystemFileHandle" = [ "FileSystemHandle" ];
"FileSystemWritableFileStream" = [ "WritableStream" ];
"FocusEvent" = [ "Event" "UiEvent" ];
"FontFaceSet" = [ "EventTarget" ];
"FontFaceSetLoadEvent" = [ "Event" ];
"GainNode" = [ "AudioNode" "EventTarget" ];
"GamepadAxisMoveEvent" = [ "Event" "GamepadEvent" ];
"GamepadButtonEvent" = [ "Event" "GamepadEvent" ];
"GamepadEvent" = [ "Event" ];
"GpuDevice" = [ "EventTarget" ];
"GpuInternalError" = [ "GpuError" ];
"GpuOutOfMemoryError" = [ "GpuError" ];
"GpuPipelineError" = [ "DomException" ];
"GpuUncapturedErrorEvent" = [ "Event" ];
"GpuValidationError" = [ "GpuError" ];
"HashChangeEvent" = [ "Event" ];
"Hid" = [ "EventTarget" ];
"HidConnectionEvent" = [ "Event" ];
"HidDevice" = [ "EventTarget" ];
"HidInputReportEvent" = [ "Event" ];
"HtmlAnchorElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlAreaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlAudioElement" = [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ];
"HtmlBaseElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlBodyElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlBrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlButtonElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlCanvasElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlDListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlDataElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlDataListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlDetailsElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlDialogElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlDirectoryElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlDivElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlDocument" = [ "Document" "EventTarget" "Node" ];
"HtmlElement" = [ "Element" "EventTarget" "Node" ];
"HtmlEmbedElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlFieldSetElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlFontElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlFormControlsCollection" = [ "HtmlCollection" ];
"HtmlFormElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlFrameElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlFrameSetElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlHeadElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlHeadingElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlHrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlHtmlElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlIFrameElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlImageElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlInputElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlLabelElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlLegendElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlLiElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlLinkElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlMapElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlMediaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlMenuElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlMenuItemElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlMetaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlMeterElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlModElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlOListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlObjectElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlOptGroupElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlOptionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlOptionsCollection" = [ "HtmlCollection" ];
"HtmlOutputElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlParagraphElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlParamElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlPictureElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlPreElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlProgressElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlQuoteElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlScriptElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlSelectElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlSlotElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlSourceElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlSpanElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlStyleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlTableCaptionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlTableCellElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlTableColElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlTableElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlTableRowElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlTableSectionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlTemplateElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlTextAreaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlTimeElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlTitleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlTrackElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlUListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlUnknownElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
"HtmlVideoElement" = [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ];
"IdbCursorWithValue" = [ "IdbCursor" ];
"IdbDatabase" = [ "EventTarget" ];
"IdbFileHandle" = [ "EventTarget" ];
"IdbFileRequest" = [ "DomRequest" "EventTarget" ];
"IdbLocaleAwareKeyRange" = [ "IdbKeyRange" ];
"IdbMutableFile" = [ "EventTarget" ];
"IdbOpenDbRequest" = [ "EventTarget" "IdbRequest" ];
"IdbRequest" = [ "EventTarget" ];
"IdbTransaction" = [ "EventTarget" ];
"IdbVersionChangeEvent" = [ "Event" ];
"IirFilterNode" = [ "AudioNode" "EventTarget" ];
"ImageCaptureErrorEvent" = [ "Event" ];
"ImageTrack" = [ "EventTarget" ];
"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" ];
"MediaStreamTrackGenerator" = [ "EventTarget" "MediaStreamTrack" ];
"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" ];
"RtcPeerConnectionIceErrorEvent" = [ "Event" ];
"RtcPeerConnectionIceEvent" = [ "Event" ];
"RtcTrackEvent" = [ "Event" ];
"RtcdtmfSender" = [ "EventTarget" ];
"RtcdtmfToneChangeEvent" = [ "Event" ];
"Screen" = [ "EventTarget" ];
"ScreenOrientation" = [ "EventTarget" ];
"ScriptProcessorNode" = [ "AudioNode" "EventTarget" ];
"ScrollAreaEvent" = [ "Event" "UiEvent" ];
"SecurityPolicyViolationEvent" = [ "Event" ];
"Serial" = [ "EventTarget" ];
"SerialPort" = [ "EventTarget" ];
"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" ];
"SubmitEvent" = [ "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" ];
"TaskController" = [ "AbortController" ];
"TaskPriorityChangeEvent" = [ "Event" ];
"TaskSignal" = [ "AbortSignal" "EventTarget" ];
"TcpServerSocket" = [ "EventTarget" ];
"TcpServerSocketEvent" = [ "Event" ];
"TcpSocket" = [ "EventTarget" ];
"TcpSocketErrorEvent" = [ "Event" ];
"TcpSocketEvent" = [ "Event" ];
"Text" = [ "CharacterData" "EventTarget" "Node" ];
"TextTrack" = [ "EventTarget" ];
"TextTrackCue" = [ "EventTarget" ];
"TextTrackList" = [ "EventTarget" ];
"TimeEvent" = [ "Event" ];
"TouchEvent" = [ "Event" "UiEvent" ];
"TrackEvent" = [ "Event" ];
"TransitionEvent" = [ "Event" ];
"UiEvent" = [ "Event" ];
"Usb" = [ "EventTarget" ];
"UsbConnectionEvent" = [ "Event" ];
"UsbPermissionResult" = [ "EventTarget" "PermissionStatus" ];
"UserProximityEvent" = [ "Event" ];
"ValueEvent" = [ "Event" ];
"VideoStreamTrack" = [ "EventTarget" "MediaStreamTrack" ];
"VideoTrackList" = [ "EventTarget" ];
"VrDisplay" = [ "EventTarget" ];
"VttCue" = [ "EventTarget" "TextTrackCue" ];
"WakeLockSentinel" = [ "EventTarget" ];
"WaveShaperNode" = [ "AudioNode" "EventTarget" ];
"WebGlContextEvent" = [ "Event" ];
"WebKitCssMatrix" = [ "DomMatrix" "DomMatrixReadOnly" ];
"WebSocket" = [ "EventTarget" ];
"WebTransportError" = [ "DomException" ];
"WebTransportReceiveStream" = [ "ReadableStream" ];
"WebTransportSendStream" = [ "WritableStream" ];
"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" ];
"XrBoundedReferenceSpace" = [ "EventTarget" "XrReferenceSpace" "XrSpace" ];
"XrInputSourceEvent" = [ "Event" ];
"XrInputSourcesChangeEvent" = [ "Event" ];
"XrJointPose" = [ "XrPose" ];
"XrJointSpace" = [ "EventTarget" "XrSpace" ];
"XrLayer" = [ "EventTarget" ];
"XrPermissionStatus" = [ "EventTarget" "PermissionStatus" ];
"XrReferenceSpace" = [ "EventTarget" "XrSpace" ];
"XrReferenceSpaceEvent" = [ "Event" ];
"XrSession" = [ "EventTarget" ];
"XrSessionEvent" = [ "Event" ];
"XrSpace" = [ "EventTarget" ];
"XrSystem" = [ "EventTarget" ];
"XrViewerPose" = [ "XrPose" ];
"XrWebGlLayer" = [ "EventTarget" "XrLayer" ];
};
resolvedDefaultFeatures = [ "AddEventListenerOptions" "AnimationEvent" "Attr" "Blob" "BlobPropertyBag" "CharacterData" "Document" "DomException" "DragEvent" "Element" "ErrorEvent" "Event" "EventInit" "EventTarget" "File" "FileList" "FilePropertyBag" "FileReader" "FocusEvent" "History" "HtmlBaseElement" "HtmlDetailsElement" "HtmlElement" "HtmlHeadElement" "HtmlInputElement" "HtmlTextAreaElement" "InputEvent" "InputEventInit" "KeyboardEvent" "Location" "MessageEvent" "MouseEvent" "NamedNodeMap" "Node" "PointerEvent" "ProgressEvent" "Storage" "Text" "TouchEvent" "TransitionEvent" "UiEvent" "Url" "UrlSearchParams" "WheelEvent" "Window" "Worker" "console" ];
};
"winapi" = rec {
crateName = "winapi";
version = "0.3.9";
edition = "2015";
sha256 = "06gl025x418lchw1wxj64ycr7gha83m44cjr5sarhynd9xkrm0sw";
authors = [
"Peter Atashian <retep998@gmail.com>"
];
dependencies = [
{
name = "winapi-i686-pc-windows-gnu";
packageId = "winapi-i686-pc-windows-gnu";
target = { target, features }: (stdenv.hostPlatform.rust.rustcTarget == "i686-pc-windows-gnu");
}
{
name = "winapi-x86_64-pc-windows-gnu";
packageId = "winapi-x86_64-pc-windows-gnu";
target = { target, features }: (stdenv.hostPlatform.rust.rustcTarget == "x86_64-pc-windows-gnu");
}
];
features = {
"debug" = [ "impl-debug" ];
};
resolvedDefaultFeatures = [ "consoleapi" "errhandlingapi" "fileapi" "knownfolders" "minwindef" "objbase" "processenv" "shlobj" "std" "sysinfoapi" "winbase" "wincon" "winerror" "winnt" ];
};
"winapi-i686-pc-windows-gnu" = rec {
crateName = "winapi-i686-pc-windows-gnu";
version = "0.4.0";
edition = "2015";
sha256 = "1dmpa6mvcvzz16zg6d5vrfy4bxgg541wxrcip7cnshi06v38ffxc";
authors = [
"Peter Atashian <retep998@gmail.com>"
];
};
"winapi-util" = rec {
crateName = "winapi-util";
version = "0.1.6";
edition = "2021";
sha256 = "15i5lm39wd44004i9d5qspry2cynkrpvwzghr6s2c3dsk28nz7pj";
authors = [
"Andrew Gallant <jamslam@gmail.com>"
];
dependencies = [
{
name = "winapi";
packageId = "winapi";
target = { target, features }: (target."windows" or false);
features = [ "std" "consoleapi" "errhandlingapi" "fileapi" "minwindef" "processenv" "sysinfoapi" "winbase" "wincon" "winerror" "winnt" ];
}
];
};
"winapi-x86_64-pc-windows-gnu" = rec {
crateName = "winapi-x86_64-pc-windows-gnu";
version = "0.4.0";
edition = "2015";
sha256 = "0gqq64czqb64kskjryj8isp62m2sgvx25yyj3kpc2myh85w24bki";
authors = [
"Peter Atashian <retep998@gmail.com>"
];
};
"yew" = rec {
crateName = "yew";
version = "0.19.3";
edition = "2018";
sha256 = "1kcqk4pm0vy08gshgpq7wamir0gsprc5gkrqff27sgvxwm9wn71a";
authors = [
"Denis Kolodin <deniskolodin@gmail.com>"
"Justin Starry <justin@yew.rs>"
];
dependencies = [
{
name = "console_error_panic_hook";
packageId = "console_error_panic_hook";
}
{
name = "gloo";
packageId = "gloo";
}
{
name = "gloo-utils";
packageId = "gloo-utils";
}
{
name = "indexmap";
packageId = "indexmap";
features = [ "std" ];
}
{
name = "js-sys";
packageId = "js-sys";
}
{
name = "scoped-tls-hkt";
packageId = "scoped-tls-hkt";
}
{
name = "slab";
packageId = "slab";
}
{
name = "wasm-bindgen";
packageId = "wasm-bindgen";
}
{
name = "wasm-bindgen-futures";
packageId = "wasm-bindgen-futures";
}
{
name = "web-sys";
packageId = "web-sys";
features = [ "AnimationEvent" "Document" "DragEvent" "Element" "ErrorEvent" "Event" "EventInit" "EventTarget" "FocusEvent" "HtmlElement" "HtmlInputElement" "HtmlTextAreaElement" "InputEvent" "InputEventInit" "KeyboardEvent" "Location" "MouseEvent" "Node" "PointerEvent" "ProgressEvent" "Text" "TouchEvent" "TransitionEvent" "UiEvent" "WheelEvent" "Window" ];
}
{
name = "yew-macro";
packageId = "yew-macro";
}
];
features = { };
};
"yew-macro" = rec {
crateName = "yew-macro";
version = "0.19.3";
edition = "2018";
sha256 = "1fxp0givrfcjg2k51mg1a023z2b1qxlii091ds6pcvam5c47kasz";
procMacro = true;
authors = [
"Justin Starry <justin@yew.rs>"
];
dependencies = [
{
name = "boolinator";
packageId = "boolinator";
}
{
name = "lazy_static";
packageId = "lazy_static";
}
{
name = "proc-macro-error";
packageId = "proc-macro-error";
}
{
name = "proc-macro2";
packageId = "proc-macro2";
}
{
name = "quote";
packageId = "quote";
}
{
name = "syn";
packageId = "syn 1.0.109";
features = [ "full" "extra-traits" ];
}
];
features = { };
};
"yew-router" = rec {
crateName = "yew-router";
version = "0.16.0";
edition = "2018";
sha256 = "1wlra0fl17lld52n7mzdy5b7fkm9hr2a2gswdmcryc5aygv08n0m";
authors = [
"Hamza <muhammadhamza1311@gmail.com>"
];
dependencies = [
{
name = "gloo";
packageId = "gloo";
features = [ "futures" ];
}
{
name = "gloo-utils";
packageId = "gloo-utils";
}
{
name = "js-sys";
packageId = "js-sys";
}
{
name = "route-recognizer";
packageId = "route-recognizer";
}
{
name = "serde";
packageId = "serde";
}
{
name = "serde-wasm-bindgen";
packageId = "serde-wasm-bindgen";
}
{
name = "serde_urlencoded";
packageId = "serde_urlencoded";
}
{
name = "thiserror";
packageId = "thiserror";
}
{
name = "wasm-bindgen";
packageId = "wasm-bindgen";
}
{
name = "web-sys";
packageId = "web-sys";
features = [ "Attr" "Document" "History" "HtmlBaseElement" "Event" "NamedNodeMap" "Url" "UrlSearchParams" "Window" ];
}
{
name = "yew";
packageId = "yew";
usesDefaultFeatures = false;
}
{
name = "yew-router-macro";
packageId = "yew-router-macro";
}
];
devDependencies = [
{
name = "serde";
packageId = "serde";
features = [ "derive" ];
}
{
name = "web-sys";
packageId = "web-sys";
features = [ "HtmlHeadElement" ];
}
];
features = { };
};
"yew-router-macro" = rec {
crateName = "yew-router-macro";
version = "0.16.0";
edition = "2018";
sha256 = "16p1lwwf8kb44zaypp2y1g4l5l86i3q6p4c0zi7svsjj7ccrs11r";
procMacro = true;
authors = [
"Hamza <muhammadhamza1311@gmail.com>"
];
dependencies = [
{
name = "proc-macro2";
packageId = "proc-macro2";
}
{
name = "quote";
packageId = "quote";
}
{
name = "syn";
packageId = "syn 1.0.109";
features = [ "full" "extra-traits" ];
}
];
};
};
#
# crate2nix/default.nix (excerpt start)
#
/* Target (platform) data for conditional dependencies.
This corresponds roughly to what buildRustCrate is setting.
*/
makeDefaultTarget = platform: {
unix = platform.isUnix;
windows = platform.isWindows;
fuchsia = true;
test = false;
inherit (platform.rust.platform)
arch
os
vendor;
family = platform.rust.platform.target-family;
env = "gnu";
endian =
if platform.parsed.cpu.significantByte.name == "littleEndian"
then "little" else "big";
pointer_width = toString platform.parsed.cpu.bits;
debug_assertions = false;
};
/* Filters common temp files and build files. */
# TODO(pkolloch): Substitute with gitignore filter
sourceFilter = name: type:
let
baseName = builtins.baseNameOf (builtins.toString name);
in
! (
# Filter out git
baseName == ".gitignore"
|| (type == "directory" && baseName == ".git")
# Filter out build results
|| (
type == "directory" && (
baseName == "target"
|| baseName == "_site"
|| baseName == ".sass-cache"
|| baseName == ".jekyll-metadata"
|| baseName == "build-artifacts"
)
)
# Filter out nix-build result symlinks
|| (
type == "symlink" && lib.hasPrefix "result" baseName
)
# Filter out IDE config
|| (
type == "directory" && (
baseName == ".idea" || baseName == ".vscode"
)
) || lib.hasSuffix ".iml" baseName
# Filter out nix build files
|| baseName == "Cargo.nix"
# Filter out editor backup / swap files.
|| lib.hasSuffix "~" baseName
|| builtins.match "^\\.sw[a-z]$$" baseName != null
|| builtins.match "^\\..*\\.sw[a-z]$$" baseName != null
|| lib.hasSuffix ".tmp" baseName
|| lib.hasSuffix ".bak" baseName
|| baseName == "tests.nix"
);
/* Returns a crate which depends on successful test execution
of crate given as the second argument.
testCrateFlags: list of flags to pass to the test exectuable
testInputs: list of packages that should be available during test execution
*/
crateWithTest = { crate, testCrate, testCrateFlags, testInputs, testPreRun, testPostRun }:
assert builtins.typeOf testCrateFlags == "list";
assert builtins.typeOf testInputs == "list";
assert builtins.typeOf testPreRun == "string";
assert builtins.typeOf testPostRun == "string";
let
# override the `crate` so that it will build and execute tests instead of
# building the actual lib and bin targets We just have to pass `--test`
# to rustc and it will do the right thing. We execute the tests and copy
# their log and the test executables to $out for later inspection.
test =
let
drv = testCrate.override
(
_: {
buildTests = true;
release = false;
}
);
# If the user hasn't set any pre/post commands, we don't want to
# insert empty lines. This means that any existing users of crate2nix
# don't get a spurious rebuild unless they set these explicitly.
testCommand = pkgs.lib.concatStringsSep "\n"
(pkgs.lib.filter (s: s != "") [
testPreRun
"$f $testCrateFlags 2>&1 | tee -a $out"
testPostRun
]);
in
pkgs.runCommand "run-tests-${testCrate.name}"
{
inherit testCrateFlags;
buildInputs = testInputs;
} ''
set -e
export RUST_BACKTRACE=1
# recreate a file hierarchy as when running tests with cargo
# the source for test data
# It's necessary to locate the source in $NIX_BUILD_TOP/source/
# instead of $NIX_BUILD_TOP/
# because we compiled those test binaries in the former and not the latter.
# So all paths will expect source tree to be there and not in the build top directly.
# For example: $NIX_BUILD_TOP := /build in general, if you ask yourself.
# NOTE: There could be edge cases if `crate.sourceRoot` does exist but
# it's very hard to reason about them.
# Open a bug if you run into this!
mkdir -p source/
cd source/
${pkgs.buildPackages.xorg.lndir}/bin/lndir ${crate.src}
# build outputs
testRoot=target/debug
mkdir -p $testRoot
# executables of the crate
# we copy to prevent std::env::current_exe() to resolve to a store location
for i in ${crate}/bin/*; do
cp "$i" "$testRoot"
done
chmod +w -R .
# test harness executables are suffixed with a hash, like cargo does
# this allows to prevent name collision with the main
# executables of the crate
hash=$(basename $out)
for file in ${drv}/tests/*; do
f=$testRoot/$(basename $file)-$hash
cp $file $f
${testCommand}
done
'';
in
pkgs.runCommand "${crate.name}-linked"
{
inherit (crate) outputs crateName;
passthru = (crate.passthru or { }) // {
inherit test;
};
}
(lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
echo tested by ${test}
'' + ''
${lib.concatMapStringsSep "\n" (output: "ln -s ${crate.${output}} ${"$"}${output}") crate.outputs}
'');
/* A restricted overridable version of builtRustCratesWithFeatures. */
buildRustCrateWithFeatures =
{ packageId
, features ? rootFeatures
, crateOverrides ? defaultCrateOverrides
, buildRustCrateForPkgsFunc ? null
, runTests ? false
, testCrateFlags ? [ ]
, testInputs ? [ ]
# Any command to run immediatelly before a test is executed.
, testPreRun ? ""
# Any command run immediatelly after a test is executed.
, testPostRun ? ""
}:
lib.makeOverridable
(
{ features
, crateOverrides
, runTests
, testCrateFlags
, testInputs
, testPreRun
, testPostRun
}:
let
buildRustCrateForPkgsFuncOverriden =
if buildRustCrateForPkgsFunc != null
then buildRustCrateForPkgsFunc
else
(
if crateOverrides == pkgs.defaultCrateOverrides
then buildRustCrateForPkgs
else
pkgs: (buildRustCrateForPkgs pkgs).override {
defaultCrateOverrides = crateOverrides;
}
);
builtRustCrates = builtRustCratesWithFeatures {
inherit packageId features;
buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden;
runTests = false;
};
builtTestRustCrates = builtRustCratesWithFeatures {
inherit packageId features;
buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden;
runTests = true;
};
drv = builtRustCrates.crates.${packageId};
testDrv = builtTestRustCrates.crates.${packageId};
derivation =
if runTests then
crateWithTest
{
crate = drv;
testCrate = testDrv;
inherit testCrateFlags testInputs testPreRun testPostRun;
}
else drv;
in
derivation
)
{ inherit features crateOverrides runTests testCrateFlags testInputs testPreRun testPostRun; };
/* Returns an attr set with packageId mapped to the result of buildRustCrateForPkgsFunc
for the corresponding crate.
*/
builtRustCratesWithFeatures =
{ packageId
, features
, crateConfigs ? crates
, buildRustCrateForPkgsFunc
, runTests
, makeTarget ? makeDefaultTarget
} @ args:
assert (builtins.isAttrs crateConfigs);
assert (builtins.isString packageId);
assert (builtins.isList features);
assert (builtins.isAttrs (makeTarget stdenv.hostPlatform));
assert (builtins.isBool runTests);
let
rootPackageId = packageId;
mergedFeatures = mergePackageFeatures
(
args // {
inherit rootPackageId;
target = makeTarget stdenv.hostPlatform // { test = runTests; };
}
);
# Memoize built packages so that reappearing packages are only built once.
builtByPackageIdByPkgs = mkBuiltByPackageIdByPkgs pkgs;
mkBuiltByPackageIdByPkgs = pkgs:
let
self = {
crates = lib.mapAttrs (packageId: value: buildByPackageIdForPkgsImpl self pkgs packageId) crateConfigs;
target = makeTarget stdenv.hostPlatform;
build = mkBuiltByPackageIdByPkgs pkgs.buildPackages;
};
in
self;
buildByPackageIdForPkgsImpl = self: pkgs: packageId:
let
features = mergedFeatures."${packageId}" or [ ];
crateConfig' = crateConfigs."${packageId}";
crateConfig =
builtins.removeAttrs crateConfig' [ "resolvedDefaultFeatures" "devDependencies" ];
devDependencies =
lib.optionals
(runTests && packageId == rootPackageId)
(crateConfig'.devDependencies or [ ]);
dependencies =
dependencyDerivations {
inherit features;
inherit (self) target;
buildByPackageId = depPackageId:
# proc_macro crates must be compiled for the build architecture
if crateConfigs.${depPackageId}.procMacro or false
then self.build.crates.${depPackageId}
else self.crates.${depPackageId};
dependencies =
(crateConfig.dependencies or [ ])
++ devDependencies;
};
buildDependencies =
dependencyDerivations {
inherit features;
inherit (self.build) target;
buildByPackageId = depPackageId:
self.build.crates.${depPackageId};
dependencies = crateConfig.buildDependencies or [ ];
};
dependenciesWithRenames =
let
buildDeps = filterEnabledDependencies {
inherit features;
inherit (self) target;
dependencies = crateConfig.dependencies or [ ] ++ devDependencies;
};
hostDeps = filterEnabledDependencies {
inherit features;
inherit (self.build) target;
dependencies = crateConfig.buildDependencies or [ ];
};
in
lib.filter (d: d ? "rename") (hostDeps ++ buildDeps);
# Crate renames have the form:
#
# {
# crate_name = [
# { version = "1.2.3"; rename = "crate_name01"; }
# ];
# # ...
# }
crateRenames =
let
grouped =
lib.groupBy
(dependency: dependency.name)
dependenciesWithRenames;
versionAndRename = dep:
let
package = crateConfigs."${dep.packageId}";
in
{ inherit (dep) rename; inherit (package) version; };
in
lib.mapAttrs (name: builtins.map versionAndRename) 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: sanitizeForJson) val
else if builtins.isList val
then builtins.map sanitizeForJson val
else if builtins.isFunction val
then "function"
else val;
/* Returns various tools to debug a crate. */
debugCrate = { packageId, target ? makeDefaultTarget stdenv.hostPlatform }:
assert (builtins.isString packageId);
let
debug = rec {
# The built tree as passed to buildRustCrate.
buildTree = buildRustCrateWithFeatures {
buildRustCrateForPkgsFunc = _: lib.id;
inherit packageId;
};
sanitizedBuildTree = sanitizeForJson buildTree;
dependencyTree = sanitizeForJson
(
buildRustCrateWithFeatures {
buildRustCrateForPkgsFunc = _: crate: {
"01_crateName" = crate.crateName or false;
"02_features" = crate.features or [ ];
"03_dependencies" = crate.dependencies or [ ];
};
inherit packageId;
}
);
mergedPackageFeatures = mergePackageFeatures {
features = rootFeatures;
inherit packageId target;
};
diffedDefaultPackageFeatures = diffDefaultPackageFeatures {
inherit packageId target;
};
};
in
{ internal = debug; };
/* Returns differences between cargo default features and crate2nix default
features.
This is useful for verifying the feature resolution in crate2nix.
*/
diffDefaultPackageFeatures =
{ crateConfigs ? crates
, packageId
, target
}:
assert (builtins.isAttrs crateConfigs);
let
prefixValues = prefix: lib.mapAttrs (n: v: { "${prefix}" = v; });
mergedFeatures =
prefixValues
"crate2nix"
(mergePackageFeatures { inherit crateConfigs packageId target; features = [ "default" ]; });
configs = prefixValues "cargo" crateConfigs;
combined = lib.foldAttrs (a: b: a // b) { } [ mergedFeatures configs ];
onlyInCargo =
builtins.attrNames
(lib.filterAttrs (n: v: !(v ? "crate2nix") && (v ? "cargo")) combined);
onlyInCrate2Nix =
builtins.attrNames
(lib.filterAttrs (n: v: (v ? "crate2nix") && !(v ? "cargo")) combined);
differentFeatures = lib.filterAttrs
(
n: v:
(v ? "crate2nix")
&& (v ? "cargo")
&& (v.crate2nix.features or [ ]) != (v."cargo".resolved_default_features or [ ])
)
combined;
in
builtins.toJSON {
inherit onlyInCargo onlyInCrate2Nix differentFeatures;
};
/* Returns an attrset mapping packageId to the list of enabled features.
If multiple paths to a dependency enable different features, the
corresponding feature sets are merged. Features in rust are additive.
*/
mergePackageFeatures =
{ crateConfigs ? crates
, packageId
, rootPackageId ? packageId
, features ? rootFeatures
, dependencyPath ? [ crates.${packageId}.crateName ]
, featuresByPackageId ? { }
, target
# Adds devDependencies to the crate with rootPackageId.
, runTests ? false
, ...
} @ args:
assert (builtins.isAttrs crateConfigs);
assert (builtins.isString packageId);
assert (builtins.isString rootPackageId);
assert (builtins.isList features);
assert (builtins.isList dependencyPath);
assert (builtins.isAttrs featuresByPackageId);
assert (builtins.isAttrs target);
assert (builtins.isBool runTests);
let
crateConfig = crateConfigs."${packageId}" or (builtins.throw "Package not found: ${packageId}");
expandedFeatures = expandFeatures (crateConfig.features or { }) features;
enabledFeatures = enableFeatures (crateConfig.dependencies or [ ]) expandedFeatures;
depWithResolvedFeatures = dependency:
let
inherit (dependency) packageId;
features = dependencyFeatures enabledFeatures dependency;
in
{ inherit packageId features; };
resolveDependencies = cache: path: dependencies:
assert (builtins.isAttrs cache);
assert (builtins.isList dependencies);
let
enabledDependencies = filterEnabledDependencies {
inherit dependencies target;
features = enabledFeatures;
};
directDependencies = map depWithResolvedFeatures enabledDependencies;
foldOverCache = op: lib.foldl op cache directDependencies;
in
foldOverCache
(
cache: { packageId, features }:
let
cacheFeatures = cache.${packageId} or [ ];
combinedFeatures = sortedUnique (cacheFeatures ++ features);
in
if cache ? ${packageId} && cache.${packageId} == combinedFeatures
then cache
else
mergePackageFeatures {
features = combinedFeatures;
featuresByPackageId = cache;
inherit crateConfigs packageId target runTests rootPackageId;
}
);
cacheWithSelf =
let
cacheFeatures = featuresByPackageId.${packageId} or [ ];
combinedFeatures = sortedUnique (cacheFeatures ++ enabledFeatures);
in
featuresByPackageId // {
"${packageId}" = combinedFeatures;
};
cacheWithDependencies =
resolveDependencies cacheWithSelf "dep"
(
crateConfig.dependencies or [ ]
++ lib.optionals
(runTests && packageId == rootPackageId)
(crateConfig.devDependencies or [ ])
);
cacheWithAll =
resolveDependencies
cacheWithDependencies "build"
(crateConfig.buildDependencies or [ ]);
in
cacheWithAll;
/* Returns the enabled dependencies given the enabled features. */
filterEnabledDependencies = { dependencies, features, target }:
assert (builtins.isList dependencies);
assert (builtins.isList features);
assert (builtins.isAttrs target);
lib.filter
(
dep:
let
targetFunc = dep.target or (features: true);
in
targetFunc { inherit features target; }
&& (
!(dep.optional or false)
|| builtins.any (doesFeatureEnableDependency dep) features
)
)
dependencies;
/* Returns whether the given feature should enable the given dependency. */
doesFeatureEnableDependency = dependency: feature:
let
name = dependency.rename or dependency.name;
prefix = "${name}/";
len = builtins.stringLength prefix;
startsWithPrefix = builtins.substring 0 len feature == prefix;
in
feature == name || feature == "dep:" + name || startsWithPrefix;
/* Returns the expanded features for the given inputFeatures by applying the
rules in featureMap.
featureMap is an attribute set which maps feature names to lists of further
feature names to enable in case this feature is selected.
*/
expandFeatures = featureMap: inputFeatures:
assert (builtins.isAttrs featureMap);
assert (builtins.isList inputFeatures);
let
expandFeaturesNoCycle = oldSeen: inputFeatures:
if inputFeatures != [ ]
then
let
# The feature we're currently expanding.
feature = builtins.head inputFeatures;
# All the features we've seen/expanded so far, including the one
# we're currently processing.
seen = oldSeen // { ${feature} = 1; };
# Expand the feature but be careful to not re-introduce a feature
# that we've already seen: this can easily cause a cycle, see issue
# #209.
enables = builtins.filter (f: !(seen ? "${f}")) (featureMap."${feature}" or [ ]);
in
[ feature ] ++ (expandFeaturesNoCycle seen (builtins.tail inputFeatures ++ enables))
# No more features left, nothing to expand to.
else [ ];
outFeatures = expandFeaturesNoCycle { } inputFeatures;
in
sortedUnique outFeatures;
/* This function adds optional dependencies as features if they are enabled
indirectly by dependency features. This function mimics Cargo's behavior
described in a note at:
https://doc.rust-lang.org/nightly/cargo/reference/features.html#dependency-features
*/
enableFeatures = dependencies: features:
assert (builtins.isList features);
assert (builtins.isList dependencies);
let
additionalFeatures = lib.concatMap
(
dependency:
assert (builtins.isAttrs dependency);
let
enabled = builtins.any (doesFeatureEnableDependency dependency) features;
in
if (dependency.optional or false) && enabled
then [ (dependency.rename or dependency.name) ]
else [ ]
)
dependencies;
in
sortedUnique (features ++ additionalFeatures);
/*
Returns the actual features for the given dependency.
features: The features of the crate that refers this dependency.
*/
dependencyFeatures = features: dependency:
assert (builtins.isList features);
assert (builtins.isAttrs dependency);
let
defaultOrNil =
if dependency.usesDefaultFeatures or true
then [ "default" ]
else [ ];
explicitFeatures = dependency.features or [ ];
additionalDependencyFeatures =
let
name = dependency.rename or dependency.name;
stripPrefixMatch = prefix: s:
if lib.hasPrefix prefix s
then lib.removePrefix prefix s
else null;
extractFeature = feature: lib.findFirst
(f: f != null)
null
(map (prefix: stripPrefixMatch prefix feature) [
(name + "/")
(name + "?/")
]);
dependencyFeatures = lib.filter (f: f != null) (map extractFeature features);
in
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)
#
};
}