2895 lines
105 KiB
Nix
2895 lines
105 KiB
Nix
|
|
# This file was @generated by crate2nix 0.9.0-alpha.1 with the command:
|
|
# "generate"
|
|
# See https://github.com/kolloch/crate2nix for more info.
|
|
|
|
{ nixpkgs ? <nixpkgs>
|
|
, pkgs ? import nixpkgs { config = {}; }
|
|
, lib ? pkgs.lib
|
|
, stdenv ? pkgs.stdenv
|
|
, buildRustCrate ? pkgs.buildRustCrate
|
|
# This is used as the `crateOverrides` argument for `buildRustCrate`.
|
|
, defaultCrateOverrides ? pkgs.defaultCrateOverrides
|
|
# The features to enable for the root_crate or the workspace_members.
|
|
, rootFeatures ? [ "default" ]
|
|
# If true, throw errors instead of issueing deprecation warnings.
|
|
, strictDeprecation ? false
|
|
# Used for conditional compilation based on CPU feature detection.
|
|
, targetFeatures ? []
|
|
# Whether to perform release builds: longer compile times, faster binaries.
|
|
, release ? true
|
|
# Additional crate2nix configuration if it exists.
|
|
, crateConfig
|
|
? if builtins.pathExists ./crate-config.nix
|
|
then pkgs.callPackage ./crate-config.nix {}
|
|
else {}
|
|
}:
|
|
|
|
rec {
|
|
#
|
|
# "public" attributes that we attempt to keep stable with new versions of crate2nix.
|
|
#
|
|
|
|
rootCrate = rec {
|
|
packageId = "lightspeed-ingest";
|
|
|
|
# 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 = {
|
|
"lightspeed-ingest" = rec {
|
|
packageId = "lightspeed-ingest";
|
|
build = internal.buildRustCrateWithFeatures {
|
|
packageId = "lightspeed-ingest";
|
|
};
|
|
|
|
# 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 = "0.7.15";
|
|
edition = "2015";
|
|
sha256 = "1rb8gzhljl8r87dpf2n5pnqnkl694casgns4ma0sqzd4zazzw13l";
|
|
libName = "aho_corasick";
|
|
authors = [
|
|
"Andrew Gallant <jamslam@gmail.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "memchr";
|
|
packageId = "memchr";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
];
|
|
features = {
|
|
"default" = [ "std" ];
|
|
"std" = [ "memchr/use_std" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "default" "std" ];
|
|
};
|
|
"autocfg" = rec {
|
|
crateName = "autocfg";
|
|
version = "1.0.1";
|
|
edition = "2015";
|
|
sha256 = "0jj6i9zn4gjl03kjvziqdji6rwx8ykz8zk2ngpc331z2g3fk3c6d";
|
|
authors = [
|
|
"Josh Stone <cuviper@gmail.com>"
|
|
];
|
|
|
|
};
|
|
"bitflags" = rec {
|
|
crateName = "bitflags";
|
|
version = "1.2.1";
|
|
edition = "2015";
|
|
sha256 = "14qnd5nq8p2almk79m4m8ydqhd413yaxsyjp5xd19g3mikzf47fg";
|
|
authors = [
|
|
"The Rust Project Developers"
|
|
];
|
|
features = {
|
|
};
|
|
resolvedDefaultFeatures = [ "default" ];
|
|
};
|
|
"bumpalo" = rec {
|
|
crateName = "bumpalo";
|
|
version = "3.4.0";
|
|
edition = "2018";
|
|
sha256 = "082qig1vxlklb9qwkg3j4hpfxb4b5blm59ln21njfc2p01zhi31f";
|
|
authors = [
|
|
"Nick Fitzgerald <fitzgen@gmail.com>"
|
|
];
|
|
features = {
|
|
};
|
|
resolvedDefaultFeatures = [ "default" ];
|
|
};
|
|
"bytes 0.5.6" = rec {
|
|
crateName = "bytes";
|
|
version = "0.5.6";
|
|
edition = "2018";
|
|
sha256 = "0f5s7xq6qzmdh22ygsy8v0sp02m51y0radvq4i4y8cizy1lfqk0f";
|
|
authors = [
|
|
"Carl Lerche <me@carllerche.com>"
|
|
"Sean McArthur <sean@seanmonstar.com>"
|
|
];
|
|
features = {
|
|
"default" = [ "std" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "default" "std" ];
|
|
};
|
|
"bytes 0.6.0" = rec {
|
|
crateName = "bytes";
|
|
version = "0.6.0";
|
|
edition = "2018";
|
|
sha256 = "05ivrcbgl4f7z2zzm9hbsi8cy66spi70xlm6fp16zsq4ylsvrp70";
|
|
authors = [
|
|
"Carl Lerche <me@carllerche.com>"
|
|
"Sean McArthur <sean@seanmonstar.com>"
|
|
];
|
|
features = {
|
|
"default" = [ "std" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "default" "std" ];
|
|
};
|
|
"cc" = rec {
|
|
crateName = "cc";
|
|
version = "1.0.66";
|
|
edition = "2018";
|
|
crateBin = [];
|
|
sha256 = "0j7d7h4n81z5f22l3v8ggjvvw8m64636nlaqax4x1y44da1rc12c";
|
|
authors = [
|
|
"Alex Crichton <alex@alexcrichton.com>"
|
|
];
|
|
features = {
|
|
"parallel" = [ "jobserver" ];
|
|
};
|
|
};
|
|
"cfg-if 0.1.10" = rec {
|
|
crateName = "cfg-if";
|
|
version = "0.1.10";
|
|
edition = "2018";
|
|
sha256 = "08h80ihs74jcyp24cd75wwabygbbdgl05k6p5dmq8akbr78vv1a7";
|
|
authors = [
|
|
"Alex Crichton <alex@alexcrichton.com>"
|
|
];
|
|
features = {
|
|
"rustc-dep-of-std" = [ "core" "compiler_builtins" ];
|
|
};
|
|
};
|
|
"cfg-if 1.0.0" = rec {
|
|
crateName = "cfg-if";
|
|
version = "1.0.0";
|
|
edition = "2018";
|
|
sha256 = "1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds";
|
|
authors = [
|
|
"Alex Crichton <alex@alexcrichton.com>"
|
|
];
|
|
features = {
|
|
"rustc-dep-of-std" = [ "core" "compiler_builtins" ];
|
|
};
|
|
};
|
|
"cloudabi" = rec {
|
|
crateName = "cloudabi";
|
|
version = "0.0.3";
|
|
edition = "2015";
|
|
sha256 = "0kxcg83jlihy0phnd2g8c2c303px3l2p3pkjz357ll6llnd5pz6x";
|
|
libPath = "cloudabi.rs";
|
|
authors = [
|
|
"Nuxi (https://nuxi.nl/) and contributors"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "bitflags";
|
|
packageId = "bitflags";
|
|
optional = true;
|
|
}
|
|
];
|
|
features = {
|
|
"default" = [ "bitflags" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "bitflags" "default" ];
|
|
};
|
|
"fuchsia-cprng" = rec {
|
|
crateName = "fuchsia-cprng";
|
|
version = "0.1.1";
|
|
edition = "2018";
|
|
sha256 = "1fnkqrbz7ixxzsb04bsz9p0zzazanma8znfdqjvh39n14vapfvx0";
|
|
authors = [
|
|
"Erick Tryzelaar <etryzelaar@google.com>"
|
|
];
|
|
|
|
};
|
|
"futures" = rec {
|
|
crateName = "futures";
|
|
version = "0.3.7";
|
|
edition = "2018";
|
|
sha256 = "15s77p4dln00clg5br9sw0rg01ir18z747b22nigvysgb0w4sccm";
|
|
authors = [
|
|
"Alex Crichton <alex@alexcrichton.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "futures-channel";
|
|
packageId = "futures-channel";
|
|
usesDefaultFeatures = false;
|
|
features = [ "sink" ];
|
|
}
|
|
{
|
|
name = "futures-core";
|
|
packageId = "futures-core";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
{
|
|
name = "futures-executor";
|
|
packageId = "futures-executor";
|
|
optional = true;
|
|
usesDefaultFeatures = false;
|
|
}
|
|
{
|
|
name = "futures-io";
|
|
packageId = "futures-io";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
{
|
|
name = "futures-sink";
|
|
packageId = "futures-sink";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
{
|
|
name = "futures-task";
|
|
packageId = "futures-task";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
{
|
|
name = "futures-util";
|
|
packageId = "futures-util";
|
|
usesDefaultFeatures = false;
|
|
features = [ "sink" ];
|
|
}
|
|
];
|
|
features = {
|
|
"alloc" = [ "futures-core/alloc" "futures-task/alloc" "futures-sink/alloc" "futures-channel/alloc" "futures-util/alloc" ];
|
|
"async-await" = [ "futures-util/async-await" "futures-util/async-await-macro" ];
|
|
"bilock" = [ "futures-util/bilock" ];
|
|
"cfg-target-has-atomic" = [ "futures-core/cfg-target-has-atomic" "futures-task/cfg-target-has-atomic" "futures-channel/cfg-target-has-atomic" "futures-util/cfg-target-has-atomic" ];
|
|
"compat" = [ "std" "futures-util/compat" ];
|
|
"default" = [ "std" "async-await" "executor" ];
|
|
"executor" = [ "std" "futures-executor/std" ];
|
|
"io-compat" = [ "compat" "futures-util/io-compat" ];
|
|
"read-initializer" = [ "futures-io/read-initializer" "futures-util/read-initializer" ];
|
|
"std" = [ "alloc" "futures-core/std" "futures-task/std" "futures-io/std" "futures-sink/std" "futures-util/std" "futures-util/io" "futures-util/channel" ];
|
|
"thread-pool" = [ "executor" "futures-executor/thread-pool" ];
|
|
"unstable" = [ "futures-core/unstable" "futures-task/unstable" "futures-channel/unstable" "futures-io/unstable" "futures-util/unstable" ];
|
|
"write-all-vectored" = [ "futures-util/write-all-vectored" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "alloc" "async-await" "default" "executor" "futures-executor" "std" ];
|
|
};
|
|
"futures-channel" = rec {
|
|
crateName = "futures-channel";
|
|
version = "0.3.7";
|
|
edition = "2018";
|
|
sha256 = "0lf1qb3bnydlwl49lmlkza6amak3i79axi3ssgp3500l055ifj04";
|
|
authors = [
|
|
"Alex Crichton <alex@alexcrichton.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "futures-core";
|
|
packageId = "futures-core";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
{
|
|
name = "futures-sink";
|
|
packageId = "futures-sink";
|
|
optional = true;
|
|
usesDefaultFeatures = false;
|
|
}
|
|
];
|
|
features = {
|
|
"alloc" = [ "futures-core/alloc" ];
|
|
"cfg-target-has-atomic" = [ "futures-core/cfg-target-has-atomic" ];
|
|
"default" = [ "std" ];
|
|
"sink" = [ "futures-sink" ];
|
|
"std" = [ "alloc" "futures-core/std" ];
|
|
"unstable" = [ "futures-core/unstable" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "alloc" "futures-sink" "sink" "std" ];
|
|
};
|
|
"futures-core" = rec {
|
|
crateName = "futures-core";
|
|
version = "0.3.7";
|
|
edition = "2018";
|
|
sha256 = "0ijf1nhhwigjxl69gjh8yp3v9qrwzxn04fgai0nfsjwq09hsbshq";
|
|
authors = [
|
|
"Alex Crichton <alex@alexcrichton.com>"
|
|
];
|
|
features = {
|
|
"default" = [ "std" ];
|
|
"std" = [ "alloc" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "alloc" "default" "std" ];
|
|
};
|
|
"futures-executor" = rec {
|
|
crateName = "futures-executor";
|
|
version = "0.3.7";
|
|
edition = "2018";
|
|
sha256 = "1jq8nxaf7pw0c2z0dw47x68d6rlnxwbxmgcfwy2ymfla4p4y1y7m";
|
|
authors = [
|
|
"Alex Crichton <alex@alexcrichton.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "futures-core";
|
|
packageId = "futures-core";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
{
|
|
name = "futures-task";
|
|
packageId = "futures-task";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
{
|
|
name = "futures-util";
|
|
packageId = "futures-util";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
];
|
|
features = {
|
|
"default" = [ "std" ];
|
|
"std" = [ "futures-core/std" "futures-task/std" "futures-util/std" ];
|
|
"thread-pool" = [ "std" "num_cpus" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "std" ];
|
|
};
|
|
"futures-io" = rec {
|
|
crateName = "futures-io";
|
|
version = "0.3.7";
|
|
edition = "2018";
|
|
sha256 = "0ayxbl36z81bmzx2s3dq3nl7mkjqkycsl4kv9aagy9s79a2rh5vf";
|
|
authors = [
|
|
"Alex Crichton <alex@alexcrichton.com>"
|
|
];
|
|
features = {
|
|
"default" = [ "std" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "std" ];
|
|
};
|
|
"futures-macro" = rec {
|
|
crateName = "futures-macro";
|
|
version = "0.3.7";
|
|
edition = "2018";
|
|
sha256 = "1zlyallwjz4fx0kr8j7dgxfncfvwc9y04rfj2i53nmjqzkrwqvz3";
|
|
procMacro = true;
|
|
authors = [
|
|
"Taylor Cramer <cramertj@google.com>"
|
|
"Taiki Endo <te316e89@gmail.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "proc-macro-hack";
|
|
packageId = "proc-macro-hack";
|
|
}
|
|
{
|
|
name = "proc-macro2";
|
|
packageId = "proc-macro2";
|
|
}
|
|
{
|
|
name = "quote";
|
|
packageId = "quote";
|
|
}
|
|
{
|
|
name = "syn";
|
|
packageId = "syn";
|
|
features = [ "full" ];
|
|
}
|
|
];
|
|
|
|
};
|
|
"futures-sink" = rec {
|
|
crateName = "futures-sink";
|
|
version = "0.3.7";
|
|
edition = "2018";
|
|
sha256 = "048b183c63vjf8cb715ckpl6yfibbg9sgxrxbnp0923fgpqs6g0f";
|
|
authors = [
|
|
"Alex Crichton <alex@alexcrichton.com>"
|
|
];
|
|
features = {
|
|
"default" = [ "std" ];
|
|
"std" = [ "alloc" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "alloc" "default" "std" ];
|
|
};
|
|
"futures-task" = rec {
|
|
crateName = "futures-task";
|
|
version = "0.3.7";
|
|
edition = "2018";
|
|
sha256 = "0g6fg21dr0ivdgkc3p69xshzi0s66wzg0ga5k7plyv0q6yph5mcn";
|
|
authors = [
|
|
"Alex Crichton <alex@alexcrichton.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "once_cell";
|
|
packageId = "once_cell";
|
|
optional = true;
|
|
usesDefaultFeatures = false;
|
|
features = [ "std" ];
|
|
}
|
|
];
|
|
features = {
|
|
"default" = [ "std" ];
|
|
"std" = [ "alloc" "once_cell" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "alloc" "once_cell" "std" ];
|
|
};
|
|
"futures-util" = rec {
|
|
crateName = "futures-util";
|
|
version = "0.3.7";
|
|
edition = "2018";
|
|
sha256 = "0d4fpcanr1n7iaqn1l7sbmqgs97p2nl8lys2mklg7rk25ws49jxb";
|
|
authors = [
|
|
"Alex Crichton <alex@alexcrichton.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "futures-channel";
|
|
packageId = "futures-channel";
|
|
optional = true;
|
|
usesDefaultFeatures = false;
|
|
features = [ "std" ];
|
|
}
|
|
{
|
|
name = "futures-core";
|
|
packageId = "futures-core";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
{
|
|
name = "futures-io";
|
|
packageId = "futures-io";
|
|
optional = true;
|
|
usesDefaultFeatures = false;
|
|
features = [ "std" ];
|
|
}
|
|
{
|
|
name = "futures-macro";
|
|
packageId = "futures-macro";
|
|
optional = true;
|
|
usesDefaultFeatures = false;
|
|
}
|
|
{
|
|
name = "futures-sink";
|
|
packageId = "futures-sink";
|
|
optional = true;
|
|
usesDefaultFeatures = false;
|
|
}
|
|
{
|
|
name = "futures-task";
|
|
packageId = "futures-task";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
{
|
|
name = "memchr";
|
|
packageId = "memchr";
|
|
optional = true;
|
|
}
|
|
{
|
|
name = "pin-project";
|
|
packageId = "pin-project";
|
|
}
|
|
{
|
|
name = "pin-utils";
|
|
packageId = "pin-utils";
|
|
}
|
|
{
|
|
name = "proc-macro-hack";
|
|
packageId = "proc-macro-hack";
|
|
optional = true;
|
|
}
|
|
{
|
|
name = "proc-macro-nested";
|
|
packageId = "proc-macro-nested";
|
|
optional = true;
|
|
}
|
|
{
|
|
name = "slab";
|
|
packageId = "slab";
|
|
optional = true;
|
|
}
|
|
];
|
|
features = {
|
|
"alloc" = [ "futures-core/alloc" "futures-task/alloc" ];
|
|
"async-await-macro" = [ "async-await" "futures-macro" "proc-macro-hack" "proc-macro-nested" ];
|
|
"cfg-target-has-atomic" = [ "futures-core/cfg-target-has-atomic" "futures-task/cfg-target-has-atomic" ];
|
|
"channel" = [ "std" "futures-channel" ];
|
|
"compat" = [ "std" "futures_01" ];
|
|
"default" = [ "std" "async-await" "async-await-macro" ];
|
|
"io" = [ "std" "futures-io" "memchr" ];
|
|
"io-compat" = [ "io" "compat" "tokio-io" ];
|
|
"read-initializer" = [ "io" "futures-io/read-initializer" "futures-io/unstable" ];
|
|
"sink" = [ "futures-sink" ];
|
|
"std" = [ "alloc" "futures-core/std" "futures-task/std" "slab" ];
|
|
"unstable" = [ "futures-core/unstable" "futures-task/unstable" ];
|
|
"write-all-vectored" = [ "io" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "alloc" "async-await" "async-await-macro" "channel" "default" "futures-channel" "futures-io" "futures-macro" "futures-sink" "io" "memchr" "proc-macro-hack" "proc-macro-nested" "sink" "slab" "std" ];
|
|
};
|
|
"hermit-abi" = rec {
|
|
crateName = "hermit-abi";
|
|
version = "0.1.17";
|
|
edition = "2018";
|
|
sha256 = "1s1ss7xypnbpjglmj5k39svzsmni1rqp57a91qi5pyv0yxjmbjjs";
|
|
authors = [
|
|
"Stefan Lankes"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "libc";
|
|
packageId = "libc";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
];
|
|
features = {
|
|
"rustc-dep-of-std" = [ "core" "compiler_builtins/rustc-dep-of-std" "libc/rustc-dep-of-std" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "default" ];
|
|
};
|
|
"hex" = rec {
|
|
crateName = "hex";
|
|
version = "0.4.2";
|
|
edition = "2018";
|
|
sha256 = "0dbf00j3h3pz0lw8jp245rwypna6i23l4cpvym8gsczin9c92kv4";
|
|
authors = [
|
|
"KokaKiwi <kokakiwi@kokakiwi.net>"
|
|
];
|
|
features = {
|
|
"default" = [ "std" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "default" "std" ];
|
|
};
|
|
"instant" = rec {
|
|
crateName = "instant";
|
|
version = "0.1.9";
|
|
edition = "2018";
|
|
sha256 = "1v659qqm55misvjijfbl1p7azjp4yynjbwldan8836ynpgp4w4k1";
|
|
authors = [
|
|
"sebcrozet <developer@crozet.re>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "cfg-if";
|
|
packageId = "cfg-if 1.0.0";
|
|
}
|
|
];
|
|
features = {
|
|
"now" = [ "time" ];
|
|
"wasm-bindgen" = [ "js-sys" "wasm-bindgen_rs" "web-sys" ];
|
|
};
|
|
};
|
|
"js-sys" = rec {
|
|
crateName = "js-sys";
|
|
version = "0.3.46";
|
|
edition = "2018";
|
|
sha256 = "0xc1llkp23q8ac2wdwh46y6gjbc34prrd98g5my9qz4zja1p6gfg";
|
|
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_no_std" = [ "spin" ];
|
|
};
|
|
};
|
|
"libc" = rec {
|
|
crateName = "libc";
|
|
version = "0.2.79";
|
|
edition = "2015";
|
|
sha256 = "0hw7qnlymw5gi5c3xd7mirpgrc5l0pvqpjg9jb3vzqw0dq3gcj14";
|
|
authors = [
|
|
"The Rust Project Developers"
|
|
];
|
|
features = {
|
|
"default" = [ "std" ];
|
|
"rustc-dep-of-std" = [ "align" "rustc-std-workspace-core" ];
|
|
"use_std" = [ "std" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "align" "default" "std" ];
|
|
};
|
|
"lightspeed-ingest" = rec {
|
|
crateName = "lightspeed-ingest";
|
|
version = "0.1.0";
|
|
edition = "2018";
|
|
crateBin = [
|
|
{ name = "lightspeed-ingest"; path = "src/main.rs"; }
|
|
];
|
|
workspace_member = null;
|
|
src = pkgs.fetchgit {
|
|
url = "https://github.com/GRVYDEV/lightspeed-ingest";
|
|
rev = "6e7756d427e409480d183a4e2211f0dca38629b1";
|
|
sha256 = "145fqxwzvkcpg94b9f9annqf29nyjaign6yins3jkhsz8zbqcv99";
|
|
};
|
|
authors = [
|
|
"Garrett Graves <gravesg57@gmail.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "bytes";
|
|
packageId = "bytes 0.5.6";
|
|
}
|
|
{
|
|
name = "futures";
|
|
packageId = "futures";
|
|
}
|
|
{
|
|
name = "futures-util";
|
|
packageId = "futures-util";
|
|
}
|
|
{
|
|
name = "hex";
|
|
packageId = "hex";
|
|
}
|
|
{
|
|
name = "rand";
|
|
packageId = "rand";
|
|
}
|
|
{
|
|
name = "regex";
|
|
packageId = "regex";
|
|
}
|
|
{
|
|
name = "ring";
|
|
packageId = "ring";
|
|
}
|
|
{
|
|
name = "rtp-rs";
|
|
packageId = "rtp-rs";
|
|
}
|
|
{
|
|
name = "tokio";
|
|
packageId = "tokio";
|
|
features = [ "full" ];
|
|
}
|
|
{
|
|
name = "tokio-util";
|
|
packageId = "tokio-util";
|
|
features = [ "codec" ];
|
|
}
|
|
];
|
|
|
|
};
|
|
"lock_api" = rec {
|
|
crateName = "lock_api";
|
|
version = "0.4.2";
|
|
edition = "2018";
|
|
sha256 = "04hkhfq308agxg9wwmzh7ncfiyyyhn0d49n07abppzdj6p8zz5nx";
|
|
authors = [
|
|
"Amanieu d'Antras <amanieu@gmail.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "scopeguard";
|
|
packageId = "scopeguard";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
];
|
|
features = {
|
|
};
|
|
};
|
|
"log" = rec {
|
|
crateName = "log";
|
|
version = "0.4.11";
|
|
edition = "2015";
|
|
sha256 = "12xzqaflpiljn5cmxsbnbv9sjaj13ykhwsvll0gysbx4blbyvasg";
|
|
authors = [
|
|
"The Rust Project Developers"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "cfg-if";
|
|
packageId = "cfg-if 0.1.10";
|
|
}
|
|
];
|
|
features = {
|
|
"kv_unstable_sval" = [ "kv_unstable" "sval/fmt" ];
|
|
};
|
|
};
|
|
"memchr" = rec {
|
|
crateName = "memchr";
|
|
version = "2.3.3";
|
|
edition = "2015";
|
|
sha256 = "0074pvsfl938ndl5js14ibc7i9q0k3zp390z843w8nlyv4bxha1p";
|
|
authors = [
|
|
"Andrew Gallant <jamslam@gmail.com>"
|
|
"bluss"
|
|
];
|
|
features = {
|
|
"default" = [ "std" ];
|
|
"use_std" = [ "std" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "default" "std" "use_std" ];
|
|
};
|
|
"mio" = rec {
|
|
crateName = "mio";
|
|
version = "0.7.6";
|
|
edition = "2018";
|
|
sha256 = "12qsvmsmpijnghgci5i0liskvwxrbg2dz6hc09kgvwaf0s3whfzk";
|
|
authors = [
|
|
"Carl Lerche <me@carllerche.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "libc";
|
|
packageId = "libc";
|
|
target = { target, features }: target."unix";
|
|
}
|
|
{
|
|
name = "log";
|
|
packageId = "log";
|
|
}
|
|
{
|
|
name = "miow";
|
|
packageId = "miow";
|
|
target = { target, features }: target."windows";
|
|
}
|
|
{
|
|
name = "ntapi";
|
|
packageId = "ntapi";
|
|
target = { target, features }: target."windows";
|
|
}
|
|
{
|
|
name = "winapi";
|
|
packageId = "winapi";
|
|
target = { target, features }: target."windows";
|
|
features = [ "winsock2" "mswsock" ];
|
|
}
|
|
];
|
|
features = {
|
|
"os-ext" = [ "os-poll" ];
|
|
"os-util" = [ "os-ext" ];
|
|
"pipe" = [ "os-ext" ];
|
|
"tcp" = [ "net" ];
|
|
"udp" = [ "net" ];
|
|
"uds" = [ "net" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "default" "net" "os-ext" "os-poll" "os-util" "tcp" "udp" "uds" ];
|
|
};
|
|
"miow" = rec {
|
|
crateName = "miow";
|
|
version = "0.3.6";
|
|
edition = "2018";
|
|
sha256 = "15sqdhh29dqgw5xh59clwv6scbsbvdkbmdc16hbfvyq7b2sw2css";
|
|
authors = [
|
|
"Alex Crichton <alex@alexcrichton.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "socket2";
|
|
packageId = "socket2";
|
|
}
|
|
{
|
|
name = "winapi";
|
|
packageId = "winapi";
|
|
features = [ "std" "fileapi" "handleapi" "ioapiset" "minwindef" "namedpipeapi" "ntdef" "synchapi" "winerror" "winsock2" "ws2def" "ws2ipdef" ];
|
|
}
|
|
];
|
|
|
|
};
|
|
"ntapi" = rec {
|
|
crateName = "ntapi";
|
|
version = "0.3.6";
|
|
edition = "2018";
|
|
sha256 = "0i5daj9sr8wyi5jkpwpybln2jqpn59z0mqfc0dpdidipwh1bjsrz";
|
|
authors = [
|
|
"MSxDOS <melcodos@gmail.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "winapi";
|
|
packageId = "winapi";
|
|
features = [ "cfg" "evntrace" "in6addr" "inaddr" "minwinbase" "ntsecapi" "windef" "winioctl" ];
|
|
}
|
|
];
|
|
features = {
|
|
"default" = [ "user" ];
|
|
"impl-default" = [ "winapi/impl-default" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "default" "user" ];
|
|
};
|
|
"num_cpus" = rec {
|
|
crateName = "num_cpus";
|
|
version = "1.13.0";
|
|
edition = "2015";
|
|
sha256 = "1cv6yxhz2zbnwn8pn1yn8grg7zsnd523947fby41a737aqvryj85";
|
|
authors = [
|
|
"Sean McArthur <sean@seanmonstar.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "hermit-abi";
|
|
packageId = "hermit-abi";
|
|
target = { target, features }: (((target."arch" == "x86_64") || (target."arch" == "aarch64")) && (target."os" == "hermit"));
|
|
}
|
|
{
|
|
name = "libc";
|
|
packageId = "libc";
|
|
}
|
|
];
|
|
|
|
};
|
|
"once_cell" = rec {
|
|
crateName = "once_cell";
|
|
version = "1.5.2";
|
|
edition = "2018";
|
|
sha256 = "183zs1dbmsv24mkafjypf9qwjrx46an58vb004a162l113sl3g8k";
|
|
authors = [
|
|
"Aleksey Kladov <aleksey.kladov@gmail.com>"
|
|
];
|
|
features = {
|
|
"default" = [ "std" ];
|
|
"std" = [ "alloc" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "alloc" "default" "std" ];
|
|
};
|
|
"parking_lot" = rec {
|
|
crateName = "parking_lot";
|
|
version = "0.11.1";
|
|
edition = "2018";
|
|
sha256 = "1sqmgaia8zfd5fbnqw2w13ijh7crk3lf9vw4cb52vwlx0an48xvd";
|
|
authors = [
|
|
"Amanieu d'Antras <amanieu@gmail.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "instant";
|
|
packageId = "instant";
|
|
}
|
|
{
|
|
name = "lock_api";
|
|
packageId = "lock_api";
|
|
}
|
|
{
|
|
name = "parking_lot_core";
|
|
packageId = "parking_lot_core";
|
|
}
|
|
];
|
|
features = {
|
|
"deadlock_detection" = [ "parking_lot_core/deadlock_detection" ];
|
|
"nightly" = [ "parking_lot_core/nightly" "lock_api/nightly" ];
|
|
"owning_ref" = [ "lock_api/owning_ref" ];
|
|
"serde" = [ "lock_api/serde" ];
|
|
"stdweb" = [ "instant/stdweb" ];
|
|
"wasm-bindgen" = [ "instant/wasm-bindgen" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "default" ];
|
|
};
|
|
"parking_lot_core" = rec {
|
|
crateName = "parking_lot_core";
|
|
version = "0.8.1";
|
|
edition = "2018";
|
|
sha256 = "1l6fhxks1xc8vbcwlz2119canmaql5hfhny51552hibl8awdkinp";
|
|
authors = [
|
|
"Amanieu d'Antras <amanieu@gmail.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "cfg-if";
|
|
packageId = "cfg-if 1.0.0";
|
|
}
|
|
{
|
|
name = "instant";
|
|
packageId = "instant";
|
|
}
|
|
{
|
|
name = "libc";
|
|
packageId = "libc";
|
|
target = { target, features }: target."unix";
|
|
}
|
|
{
|
|
name = "redox_syscall";
|
|
packageId = "redox_syscall";
|
|
target = { target, features }: (target."os" == "redox");
|
|
}
|
|
{
|
|
name = "smallvec";
|
|
packageId = "smallvec";
|
|
}
|
|
{
|
|
name = "winapi";
|
|
packageId = "winapi";
|
|
target = { target, features }: target."windows";
|
|
features = [ "winnt" "ntstatus" "minwindef" "winerror" "winbase" "errhandlingapi" "handleapi" ];
|
|
}
|
|
];
|
|
features = {
|
|
"deadlock_detection" = [ "petgraph" "thread-id" "backtrace" ];
|
|
};
|
|
};
|
|
"pin-project" = rec {
|
|
crateName = "pin-project";
|
|
version = "1.0.1";
|
|
edition = "2018";
|
|
sha256 = "0h9qyx9napp34j5d7jk11xnlbirmdgxklkh7sxcxjq2gfhwdhhgf";
|
|
authors = [
|
|
"Taiki Endo <te316e89@gmail.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "pin-project-internal";
|
|
packageId = "pin-project-internal";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
];
|
|
|
|
};
|
|
"pin-project-internal" = rec {
|
|
crateName = "pin-project-internal";
|
|
version = "1.0.1";
|
|
edition = "2018";
|
|
sha256 = "11igpgxqnqlfim2zrmy8k82dr9s9yqfhim4400sgysxnjjjzz941";
|
|
procMacro = true;
|
|
authors = [
|
|
"Taiki Endo <te316e89@gmail.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "proc-macro2";
|
|
packageId = "proc-macro2";
|
|
}
|
|
{
|
|
name = "quote";
|
|
packageId = "quote";
|
|
}
|
|
{
|
|
name = "syn";
|
|
packageId = "syn";
|
|
features = [ "full" "visit-mut" ];
|
|
}
|
|
];
|
|
|
|
};
|
|
"pin-project-lite 0.1.11" = rec {
|
|
crateName = "pin-project-lite";
|
|
version = "0.1.11";
|
|
edition = "2018";
|
|
sha256 = "0srgdb3vkx7ppcww1qr7a67c7n84y01lq35j9g44z4h1z8x145y9";
|
|
authors = [
|
|
"Taiki Endo <te316e89@gmail.com>"
|
|
];
|
|
|
|
};
|
|
"pin-project-lite 0.2.0" = rec {
|
|
crateName = "pin-project-lite";
|
|
version = "0.2.0";
|
|
edition = "2018";
|
|
sha256 = "070klqy200alrhxb79fxarrrrn0vbwg95dmqw9062vhqxibky1kb";
|
|
authors = [
|
|
"Taiki Endo <te316e89@gmail.com>"
|
|
];
|
|
|
|
};
|
|
"pin-utils" = rec {
|
|
crateName = "pin-utils";
|
|
version = "0.1.0";
|
|
edition = "2018";
|
|
sha256 = "117ir7vslsl2z1a7qzhws4pd01cg2d3338c47swjyvqv2n60v1wb";
|
|
authors = [
|
|
"Josef Brandl <mail@josefbrandl.de>"
|
|
];
|
|
|
|
};
|
|
"proc-macro-hack" = rec {
|
|
crateName = "proc-macro-hack";
|
|
version = "0.5.18";
|
|
edition = "2018";
|
|
sha256 = "16055crxm9l5skrl96l5cs6xc4xnvhiggcf625r7pixdl2whbilr";
|
|
procMacro = true;
|
|
authors = [
|
|
"David Tolnay <dtolnay@gmail.com>"
|
|
];
|
|
|
|
};
|
|
"proc-macro-nested" = rec {
|
|
crateName = "proc-macro-nested";
|
|
version = "0.1.6";
|
|
edition = "2015";
|
|
sha256 = "0nnwm9bvp1fmr8nqjp8ynrkj97yzpsdh3062li8b0f4hzgd818gb";
|
|
authors = [
|
|
"David Tolnay <dtolnay@gmail.com>"
|
|
];
|
|
|
|
};
|
|
"proc-macro2" = rec {
|
|
crateName = "proc-macro2";
|
|
version = "1.0.24";
|
|
edition = "2018";
|
|
sha256 = "0wcabxzrddcjmryndw8fpyxcq6rw63m701vx86xxf03y3bp081qy";
|
|
authors = [
|
|
"Alex Crichton <alex@alexcrichton.com>"
|
|
"David Tolnay <dtolnay@gmail.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "unicode-xid";
|
|
packageId = "unicode-xid";
|
|
}
|
|
];
|
|
features = {
|
|
"default" = [ "proc-macro" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "default" "proc-macro" ];
|
|
};
|
|
"quote" = rec {
|
|
crateName = "quote";
|
|
version = "1.0.7";
|
|
edition = "2018";
|
|
sha256 = "0drzd6pq7whq7qhdvvs8wn6pbb0hhc12pz8wv80fb05ixhbksmma";
|
|
authors = [
|
|
"David Tolnay <dtolnay@gmail.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "proc-macro2";
|
|
packageId = "proc-macro2";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
];
|
|
features = {
|
|
"default" = [ "proc-macro" ];
|
|
"proc-macro" = [ "proc-macro2/proc-macro" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "default" "proc-macro" ];
|
|
};
|
|
"rand" = rec {
|
|
crateName = "rand";
|
|
version = "0.5.6";
|
|
edition = "2015";
|
|
sha256 = "1fdcgja9167hlzkf4g5daqwp498lwiyq7aqm05whklpbsdyc8666";
|
|
authors = [
|
|
"The Rust Project Developers"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "cloudabi";
|
|
packageId = "cloudabi";
|
|
optional = true;
|
|
target = { target, features }: (target."os" == "cloudabi");
|
|
}
|
|
{
|
|
name = "fuchsia-cprng";
|
|
packageId = "fuchsia-cprng";
|
|
optional = true;
|
|
target = { target, features }: (target."os" == "fuchsia");
|
|
}
|
|
{
|
|
name = "libc";
|
|
packageId = "libc";
|
|
optional = true;
|
|
target = { target, features }: target."unix";
|
|
}
|
|
{
|
|
name = "rand_core";
|
|
packageId = "rand_core 0.3.1";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
{
|
|
name = "winapi";
|
|
packageId = "winapi";
|
|
optional = true;
|
|
target = { target, features }: target."windows";
|
|
features = [ "minwindef" "ntsecapi" "profileapi" "winnt" ];
|
|
}
|
|
];
|
|
features = {
|
|
"alloc" = [ "rand_core/alloc" ];
|
|
"default" = [ "std" ];
|
|
"nightly" = [ "i128_support" ];
|
|
"serde1" = [ "serde" "serde_derive" "rand_core/serde1" ];
|
|
"std" = [ "rand_core/std" "alloc" "libc" "winapi" "cloudabi" "fuchsia-cprng" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "alloc" "cloudabi" "default" "fuchsia-cprng" "libc" "std" "winapi" ];
|
|
};
|
|
"rand_core 0.3.1" = rec {
|
|
crateName = "rand_core";
|
|
version = "0.3.1";
|
|
edition = "2015";
|
|
sha256 = "0jzdgszfa4bliigiy4hi66k7fs3gfwi2qxn8vik84ph77fwdwvvs";
|
|
authors = [
|
|
"The Rand Project Developers"
|
|
"The Rust Project Developers"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "rand_core";
|
|
packageId = "rand_core 0.4.2";
|
|
}
|
|
];
|
|
features = {
|
|
"alloc" = [ "rand_core/alloc" ];
|
|
"default" = [ "std" ];
|
|
"serde1" = [ "rand_core/serde1" ];
|
|
"std" = [ "rand_core/std" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "alloc" "std" ];
|
|
};
|
|
"rand_core 0.4.2" = rec {
|
|
crateName = "rand_core";
|
|
version = "0.4.2";
|
|
edition = "2015";
|
|
sha256 = "1p09ynysrq1vcdlmcqnapq4qakl2yd1ng3kxh3qscpx09k2a6cww";
|
|
authors = [
|
|
"The Rand Project Developers"
|
|
"The Rust Project Developers"
|
|
];
|
|
features = {
|
|
"serde1" = [ "serde" "serde_derive" ];
|
|
"std" = [ "alloc" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "alloc" "std" ];
|
|
};
|
|
"redox_syscall" = rec {
|
|
crateName = "redox_syscall";
|
|
version = "0.1.57";
|
|
edition = "2015";
|
|
sha256 = "1kh59fpwy33w9nwd5iyc283yglq8pf2s41hnhvl48iax9mz0zk21";
|
|
libName = "syscall";
|
|
authors = [
|
|
"Jeremy Soller <jackpot51@gmail.com>"
|
|
];
|
|
|
|
};
|
|
"regex" = rec {
|
|
crateName = "regex";
|
|
version = "1.4.2";
|
|
edition = "2015";
|
|
sha256 = "172bw2yryv65whn3n5vkww4kgk0bq08lx0zbln8xwia7xl9jrkrq";
|
|
authors = [
|
|
"The Rust Project Developers"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "aho-corasick";
|
|
packageId = "aho-corasick";
|
|
optional = true;
|
|
}
|
|
{
|
|
name = "memchr";
|
|
packageId = "memchr";
|
|
optional = true;
|
|
}
|
|
{
|
|
name = "regex-syntax";
|
|
packageId = "regex-syntax";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
{
|
|
name = "thread_local";
|
|
packageId = "thread_local";
|
|
optional = true;
|
|
}
|
|
];
|
|
features = {
|
|
"default" = [ "std" "perf" "unicode" "regex-syntax/default" ];
|
|
"perf" = [ "perf-cache" "perf-dfa" "perf-inline" "perf-literal" ];
|
|
"perf-cache" = [ "thread_local" ];
|
|
"perf-literal" = [ "aho-corasick" "memchr" ];
|
|
"unicode" = [ "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" "regex-syntax/unicode" ];
|
|
"unicode-age" = [ "regex-syntax/unicode-age" ];
|
|
"unicode-bool" = [ "regex-syntax/unicode-bool" ];
|
|
"unicode-case" = [ "regex-syntax/unicode-case" ];
|
|
"unicode-gencat" = [ "regex-syntax/unicode-gencat" ];
|
|
"unicode-perl" = [ "regex-syntax/unicode-perl" ];
|
|
"unicode-script" = [ "regex-syntax/unicode-script" ];
|
|
"unicode-segment" = [ "regex-syntax/unicode-segment" ];
|
|
"unstable" = [ "pattern" ];
|
|
"use_std" = [ "std" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "aho-corasick" "default" "memchr" "perf" "perf-cache" "perf-dfa" "perf-inline" "perf-literal" "std" "thread_local" "unicode" "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" ];
|
|
};
|
|
"regex-syntax" = rec {
|
|
crateName = "regex-syntax";
|
|
version = "0.6.21";
|
|
edition = "2015";
|
|
sha256 = "12d176jkgw9749g07zjxz0n78nyvb2nqx3j4sp5aqyphvji1n61v";
|
|
authors = [
|
|
"The Rust Project Developers"
|
|
];
|
|
features = {
|
|
"default" = [ "unicode" ];
|
|
"unicode" = [ "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "default" "unicode" "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" ];
|
|
};
|
|
"ring" = rec {
|
|
crateName = "ring";
|
|
version = "0.16.19";
|
|
edition = "2018";
|
|
sha256 = "09j2jh4cfl6vdlr5qkrvl5rln3pzlwi5dvi4cv36ck57zrk1wjh2";
|
|
authors = [
|
|
"Brian Smith <brian@briansmith.org>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "libc";
|
|
packageId = "libc";
|
|
usesDefaultFeatures = false;
|
|
target = { target, features }: ((target."os" == "android") || (target."os" == "linux"));
|
|
}
|
|
{
|
|
name = "once_cell";
|
|
packageId = "once_cell";
|
|
optional = true;
|
|
usesDefaultFeatures = false;
|
|
target = { target, features }: ((target."os" == "android") || (target."os" == "linux"));
|
|
features = [ "std" ];
|
|
}
|
|
{
|
|
name = "once_cell";
|
|
packageId = "once_cell";
|
|
usesDefaultFeatures = false;
|
|
target = { target, features }: ((target."os" == "dragonfly") || (target."os" == "freebsd") || (target."os" == "illumos") || (target."os" == "netbsd") || (target."os" == "openbsd") || (target."os" == "solaris"));
|
|
features = [ "std" ];
|
|
}
|
|
{
|
|
name = "spin";
|
|
packageId = "spin";
|
|
usesDefaultFeatures = false;
|
|
target = { target, features }: ((target."arch" == "x86") || (target."arch" == "x86_64") || (((target."arch" == "aarch64") || (target."arch" == "arm")) && ((target."os" == "android") || (target."os" == "fuchsia") || (target."os" == "linux"))));
|
|
}
|
|
{
|
|
name = "untrusted";
|
|
packageId = "untrusted";
|
|
}
|
|
{
|
|
name = "web-sys";
|
|
packageId = "web-sys";
|
|
usesDefaultFeatures = false;
|
|
target = { target, features }: ((target."arch" == "wasm32") && (target."vendor" == "unknown") && (target."os" == "unknown") && (target."env" == ""));
|
|
features = [ "Crypto" "Window" ];
|
|
}
|
|
{
|
|
name = "winapi";
|
|
packageId = "winapi";
|
|
usesDefaultFeatures = false;
|
|
target = { target, features }: (target."os" == "windows");
|
|
features = [ "ntsecapi" "wtypesbase" ];
|
|
}
|
|
];
|
|
buildDependencies = [
|
|
{
|
|
name = "cc";
|
|
packageId = "cc";
|
|
usesDefaultFeatures = false;
|
|
}
|
|
];
|
|
features = {
|
|
"default" = [ "alloc" "dev_urandom_fallback" ];
|
|
"dev_urandom_fallback" = [ "once_cell" ];
|
|
"std" = [ "alloc" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "alloc" "default" "dev_urandom_fallback" "once_cell" ];
|
|
};
|
|
"rtp-rs" = rec {
|
|
crateName = "rtp-rs";
|
|
version = "0.5.0";
|
|
edition = "2018";
|
|
sha256 = "1x8pgqbwwqrqnp2ykzdva7inmn7jzcgr42fy07lldm4ka5lhs4g1";
|
|
libName = "rtp_rs";
|
|
authors = [
|
|
"David Holroyd <dave@badgers-in-foil.co.uk>"
|
|
];
|
|
|
|
};
|
|
"scopeguard" = rec {
|
|
crateName = "scopeguard";
|
|
version = "1.1.0";
|
|
edition = "2015";
|
|
sha256 = "1kbqm85v43rq92vx7hfiay6pmcga03vrjbbfwqpyj3pwsg3b16nj";
|
|
authors = [
|
|
"bluss"
|
|
];
|
|
features = {
|
|
"default" = [ "use_std" ];
|
|
};
|
|
};
|
|
"signal-hook-registry" = rec {
|
|
crateName = "signal-hook-registry";
|
|
version = "1.2.2";
|
|
edition = "2015";
|
|
sha256 = "1ar0dd9q1w952knhs0fx7qfh4iq5jvcvwkw1xg5fmmandh6flcnf";
|
|
authors = [
|
|
"Michal 'vorner' Vaner <vorner@vorner.cz>"
|
|
"Masaki Hara <ackie.h.gmai@gmail.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "libc";
|
|
packageId = "libc";
|
|
}
|
|
];
|
|
|
|
};
|
|
"slab" = rec {
|
|
crateName = "slab";
|
|
version = "0.4.2";
|
|
edition = "2015";
|
|
sha256 = "1y59xsa27jk84sxzswjk60xcjf8b4fm5960jwpznrrcmasyva4f1";
|
|
authors = [
|
|
"Carl Lerche <me@carllerche.com>"
|
|
];
|
|
|
|
};
|
|
"smallvec" = rec {
|
|
crateName = "smallvec";
|
|
version = "1.5.1";
|
|
edition = "2018";
|
|
sha256 = "0xcxvc2lh2fj02d91v4dx1l4q14m5rb4yac788bhwxvxdl2lylmf";
|
|
authors = [
|
|
"The Servo Project Developers"
|
|
];
|
|
features = {
|
|
};
|
|
};
|
|
"socket2" = rec {
|
|
crateName = "socket2";
|
|
version = "0.3.19";
|
|
edition = "2018";
|
|
sha256 = "0vldz14mxqxnjqb6an2pj7mgclv7nrk45cpscwq7g3fj2c0mfbhj";
|
|
authors = [
|
|
"Alex Crichton <alex@alexcrichton.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "cfg-if";
|
|
packageId = "cfg-if 1.0.0";
|
|
target = { target, features }: target."unix";
|
|
}
|
|
{
|
|
name = "libc";
|
|
packageId = "libc";
|
|
target = { target, features }: target."unix";
|
|
features = [ "align" ];
|
|
}
|
|
{
|
|
name = "winapi";
|
|
packageId = "winapi";
|
|
target = { target, features }: target."windows";
|
|
features = [ "handleapi" "ws2def" "ws2ipdef" "ws2tcpip" "minwindef" ];
|
|
}
|
|
];
|
|
features = {
|
|
};
|
|
};
|
|
"spin" = rec {
|
|
crateName = "spin";
|
|
version = "0.5.2";
|
|
edition = "2015";
|
|
sha256 = "0b84m6dbzrwf2kxylnw82d3dr8w06av7rfkr8s85fb5f43rwyqvf";
|
|
authors = [
|
|
"Mathijs van de Nes <git@mathijs.vd-nes.nl>"
|
|
"John Ericson <git@JohnEricson.me>"
|
|
];
|
|
|
|
};
|
|
"syn" = rec {
|
|
crateName = "syn";
|
|
version = "1.0.46";
|
|
edition = "2018";
|
|
sha256 = "0hn92vd7rj79ldhg3mhrlan2pl1k4b2d5phq4qrdl17a40rdxmas";
|
|
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-xid";
|
|
packageId = "unicode-xid";
|
|
}
|
|
];
|
|
features = {
|
|
"default" = [ "derive" "parsing" "printing" "clone-impls" "proc-macro" ];
|
|
"printing" = [ "quote" ];
|
|
"proc-macro" = [ "proc-macro2/proc-macro" "quote/proc-macro" ];
|
|
"test" = [ "syn-test-suite/all-features" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "full" "parsing" "printing" "proc-macro" "quote" "visit" "visit-mut" ];
|
|
};
|
|
"thread_local" = rec {
|
|
crateName = "thread_local";
|
|
version = "1.0.1";
|
|
edition = "2015";
|
|
sha256 = "054vlrr1vsdy1h4b7n99mr24pnj8928ig9qwzg36wnkld4dns36l";
|
|
authors = [
|
|
"Amanieu d'Antras <amanieu@gmail.com>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "lazy_static";
|
|
packageId = "lazy_static";
|
|
}
|
|
];
|
|
|
|
};
|
|
"tokio" = rec {
|
|
crateName = "tokio";
|
|
version = "0.3.6";
|
|
edition = "2018";
|
|
sha256 = "0z78l7kn4y2qvghsp9dyqgvr1kjvv63pjq3d8nzi31q74lfa42vj";
|
|
authors = [
|
|
"Tokio Contributors <team@tokio.rs>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "bytes";
|
|
packageId = "bytes 0.6.0";
|
|
optional = true;
|
|
}
|
|
{
|
|
name = "futures-core";
|
|
packageId = "futures-core";
|
|
optional = true;
|
|
}
|
|
{
|
|
name = "libc";
|
|
packageId = "libc";
|
|
optional = true;
|
|
target = { target, features }: target."unix";
|
|
}
|
|
{
|
|
name = "memchr";
|
|
packageId = "memchr";
|
|
optional = true;
|
|
}
|
|
{
|
|
name = "mio";
|
|
packageId = "mio";
|
|
optional = true;
|
|
}
|
|
{
|
|
name = "num_cpus";
|
|
packageId = "num_cpus";
|
|
optional = true;
|
|
}
|
|
{
|
|
name = "once_cell";
|
|
packageId = "once_cell";
|
|
optional = true;
|
|
}
|
|
{
|
|
name = "parking_lot";
|
|
packageId = "parking_lot";
|
|
optional = true;
|
|
}
|
|
{
|
|
name = "pin-project-lite";
|
|
packageId = "pin-project-lite 0.2.0";
|
|
}
|
|
{
|
|
name = "signal-hook-registry";
|
|
packageId = "signal-hook-registry";
|
|
optional = true;
|
|
target = { target, features }: target."unix";
|
|
}
|
|
{
|
|
name = "slab";
|
|
packageId = "slab";
|
|
optional = true;
|
|
}
|
|
{
|
|
name = "tokio-macros";
|
|
packageId = "tokio-macros";
|
|
optional = true;
|
|
}
|
|
{
|
|
name = "winapi";
|
|
packageId = "winapi";
|
|
optional = true;
|
|
usesDefaultFeatures = false;
|
|
target = { target, features }: target."windows";
|
|
}
|
|
];
|
|
buildDependencies = [
|
|
{
|
|
name = "autocfg";
|
|
packageId = "autocfg";
|
|
}
|
|
];
|
|
devDependencies = [
|
|
{
|
|
name = "libc";
|
|
packageId = "libc";
|
|
target = {target, features}: target."unix";
|
|
}
|
|
];
|
|
features = {
|
|
"full" = [ "fs" "io-util" "io-std" "macros" "net" "parking_lot" "process" "rt" "rt-multi-thread" "signal" "stream" "sync" "time" ];
|
|
"io-util" = [ "memchr" "bytes" ];
|
|
"macros" = [ "tokio-macros" ];
|
|
"net" = [ "libc" "mio/os-poll" "mio/os-util" "mio/tcp" "mio/udp" "mio/uds" ];
|
|
"process" = [ "bytes" "once_cell" "libc" "mio/os-poll" "mio/os-util" "mio/uds" "signal-hook-registry" "winapi/threadpoollegacyapiset" ];
|
|
"rt" = [ "slab" ];
|
|
"rt-multi-thread" = [ "num_cpus" "rt" ];
|
|
"signal" = [ "once_cell" "libc" "mio/os-poll" "mio/uds" "mio/os-util" "signal-hook-registry" "winapi/consoleapi" ];
|
|
"stream" = [ "futures-core" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "bytes" "default" "fs" "full" "futures-core" "io-std" "io-util" "libc" "macros" "memchr" "mio" "net" "num_cpus" "once_cell" "parking_lot" "process" "rt" "rt-multi-thread" "signal" "signal-hook-registry" "slab" "stream" "sync" "time" "tokio-macros" "winapi" ];
|
|
};
|
|
"tokio-macros" = rec {
|
|
crateName = "tokio-macros";
|
|
version = "0.3.2";
|
|
edition = "2018";
|
|
sha256 = "1dvd3gji7a0i1kgck2lwgbcbklk3qb1bsqgd2v9amj63kyjzzps6";
|
|
procMacro = true;
|
|
authors = [
|
|
"Tokio Contributors <team@tokio.rs>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "proc-macro2";
|
|
packageId = "proc-macro2";
|
|
}
|
|
{
|
|
name = "quote";
|
|
packageId = "quote";
|
|
}
|
|
{
|
|
name = "syn";
|
|
packageId = "syn";
|
|
features = [ "full" ];
|
|
}
|
|
];
|
|
|
|
};
|
|
"tokio-util" = rec {
|
|
crateName = "tokio-util";
|
|
version = "0.4.0";
|
|
edition = "2018";
|
|
sha256 = "1m4pdg2gciagc9c5psg4lm51mcg69xwxr1yjdr0s0nv6yjckcy94";
|
|
authors = [
|
|
"Tokio Contributors <team@tokio.rs>"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "bytes";
|
|
packageId = "bytes 0.5.6";
|
|
}
|
|
{
|
|
name = "futures-core";
|
|
packageId = "futures-core";
|
|
}
|
|
{
|
|
name = "futures-sink";
|
|
packageId = "futures-sink";
|
|
}
|
|
{
|
|
name = "log";
|
|
packageId = "log";
|
|
}
|
|
{
|
|
name = "pin-project-lite";
|
|
packageId = "pin-project-lite 0.1.11";
|
|
}
|
|
{
|
|
name = "tokio";
|
|
packageId = "tokio";
|
|
}
|
|
];
|
|
devDependencies = [
|
|
{
|
|
name = "tokio";
|
|
packageId = "tokio";
|
|
features = [ "full" ];
|
|
}
|
|
];
|
|
features = {
|
|
"codec" = [ "tokio/stream" ];
|
|
"compat" = [ "futures-io" ];
|
|
"full" = [ "codec" "compat" "io" "time" ];
|
|
"rt" = [ "tokio/rt" ];
|
|
"time" = [ "tokio/time" "slab" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "codec" "default" ];
|
|
};
|
|
"unicode-xid" = rec {
|
|
crateName = "unicode-xid";
|
|
version = "0.2.1";
|
|
edition = "2015";
|
|
sha256 = "0r6mknipyy9vpz8mwmxvkx65ff2ha1n2pxqjj6f46lcn8yrhpzpp";
|
|
authors = [
|
|
"erick.tryzelaar <erick.tryzelaar@gmail.com>"
|
|
"kwantam <kwantam@gmail.com>"
|
|
];
|
|
features = {
|
|
};
|
|
resolvedDefaultFeatures = [ "default" ];
|
|
};
|
|
"untrusted" = rec {
|
|
crateName = "untrusted";
|
|
version = "0.7.1";
|
|
edition = "2018";
|
|
sha256 = "0jkbqaj9d3v5a91pp3wp9mffvng1nhycx6sh4qkdd9qyr62ccmm1";
|
|
libPath = "src/untrusted.rs";
|
|
authors = [
|
|
"Brian Smith <brian@briansmith.org>"
|
|
];
|
|
|
|
};
|
|
"wasm-bindgen" = rec {
|
|
crateName = "wasm-bindgen";
|
|
version = "0.2.69";
|
|
edition = "2018";
|
|
sha256 = "0vkkpz290k6pphmrgkayzdvk1dinxrp6c5zvr9l0zjlm2dsn9lrw";
|
|
authors = [
|
|
"The wasm-bindgen Developers"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "cfg-if";
|
|
packageId = "cfg-if 1.0.0";
|
|
}
|
|
{
|
|
name = "wasm-bindgen-macro";
|
|
packageId = "wasm-bindgen-macro";
|
|
}
|
|
];
|
|
features = {
|
|
"default" = [ "spans" "std" ];
|
|
"enable-interning" = [ "std" ];
|
|
"serde-serialize" = [ "serde" "serde_json" "std" ];
|
|
"spans" = [ "wasm-bindgen-macro/spans" ];
|
|
"strict-macro" = [ "wasm-bindgen-macro/strict-macro" ];
|
|
"xxx_debug_only_print_generated_code" = [ "wasm-bindgen-macro/xxx_debug_only_print_generated_code" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "default" "spans" "std" ];
|
|
};
|
|
"wasm-bindgen-backend" = rec {
|
|
crateName = "wasm-bindgen-backend";
|
|
version = "0.2.69";
|
|
edition = "2018";
|
|
sha256 = "0qidxjmcn50v2i5hjz7al69sa3mbq0lbi276amdnw47ln6dgh50i";
|
|
authors = [
|
|
"The wasm-bindgen Developers"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "bumpalo";
|
|
packageId = "bumpalo";
|
|
}
|
|
{
|
|
name = "lazy_static";
|
|
packageId = "lazy_static";
|
|
}
|
|
{
|
|
name = "log";
|
|
packageId = "log";
|
|
}
|
|
{
|
|
name = "proc-macro2";
|
|
packageId = "proc-macro2";
|
|
}
|
|
{
|
|
name = "quote";
|
|
packageId = "quote";
|
|
}
|
|
{
|
|
name = "syn";
|
|
packageId = "syn";
|
|
features = [ "full" ];
|
|
}
|
|
{
|
|
name = "wasm-bindgen-shared";
|
|
packageId = "wasm-bindgen-shared";
|
|
}
|
|
];
|
|
features = {
|
|
"extra-traits" = [ "syn/extra-traits" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "spans" ];
|
|
};
|
|
"wasm-bindgen-macro" = rec {
|
|
crateName = "wasm-bindgen-macro";
|
|
version = "0.2.69";
|
|
edition = "2018";
|
|
sha256 = "113hyzn0dpqasznzcwgmqw03i5yhjkqna7paim50h7xdbscwhsks";
|
|
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.69";
|
|
edition = "2018";
|
|
sha256 = "0jbmgj8zxflza1cl15k3r70fqsak4bkkfbn6qxbhbn4ry9r8r95m";
|
|
authors = [
|
|
"The wasm-bindgen Developers"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "proc-macro2";
|
|
packageId = "proc-macro2";
|
|
}
|
|
{
|
|
name = "quote";
|
|
packageId = "quote";
|
|
}
|
|
{
|
|
name = "syn";
|
|
packageId = "syn";
|
|
features = [ "visit" "full" ];
|
|
}
|
|
{
|
|
name = "wasm-bindgen-backend";
|
|
packageId = "wasm-bindgen-backend";
|
|
}
|
|
{
|
|
name = "wasm-bindgen-shared";
|
|
packageId = "wasm-bindgen-shared";
|
|
}
|
|
];
|
|
features = {
|
|
"extra-traits" = [ "syn/extra-traits" ];
|
|
"spans" = [ "wasm-bindgen-backend/spans" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "spans" ];
|
|
};
|
|
"wasm-bindgen-shared" = rec {
|
|
crateName = "wasm-bindgen-shared";
|
|
version = "0.2.69";
|
|
edition = "2018";
|
|
sha256 = "0n3ir6gq27np22l6m96y342a6fphk1pkbzbfqx6g364kgzfi2y3y";
|
|
authors = [
|
|
"The wasm-bindgen Developers"
|
|
];
|
|
|
|
};
|
|
"web-sys" = rec {
|
|
crateName = "web-sys";
|
|
version = "0.3.46";
|
|
edition = "2018";
|
|
sha256 = "1hx3bcqhczkdc952gychkaakc27kh3yw6gdm7wfs54jg6gwiwar2";
|
|
authors = [
|
|
"The wasm-bindgen Developers"
|
|
];
|
|
dependencies = [
|
|
{
|
|
name = "js-sys";
|
|
packageId = "js-sys";
|
|
}
|
|
{
|
|
name = "wasm-bindgen";
|
|
packageId = "wasm-bindgen";
|
|
}
|
|
];
|
|
features = {
|
|
"AbortSignal" = [ "EventTarget" ];
|
|
"AnalyserNode" = [ "AudioNode" "EventTarget" ];
|
|
"Animation" = [ "EventTarget" ];
|
|
"AnimationEvent" = [ "Event" ];
|
|
"AnimationPlaybackEvent" = [ "Event" ];
|
|
"Attr" = [ "EventTarget" "Node" ];
|
|
"AudioBufferSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ];
|
|
"AudioContext" = [ "BaseAudioContext" "EventTarget" ];
|
|
"AudioDestinationNode" = [ "AudioNode" "EventTarget" ];
|
|
"AudioNode" = [ "EventTarget" ];
|
|
"AudioProcessingEvent" = [ "Event" ];
|
|
"AudioScheduledSourceNode" = [ "AudioNode" "EventTarget" ];
|
|
"AudioStreamTrack" = [ "EventTarget" "MediaStreamTrack" ];
|
|
"AudioTrackList" = [ "EventTarget" ];
|
|
"AudioWorklet" = [ "Worklet" ];
|
|
"AudioWorkletGlobalScope" = [ "WorkletGlobalScope" ];
|
|
"AudioWorkletNode" = [ "AudioNode" "EventTarget" ];
|
|
"AuthenticatorAssertionResponse" = [ "AuthenticatorResponse" ];
|
|
"AuthenticatorAttestationResponse" = [ "AuthenticatorResponse" ];
|
|
"BaseAudioContext" = [ "EventTarget" ];
|
|
"BatteryManager" = [ "EventTarget" ];
|
|
"BeforeUnloadEvent" = [ "Event" ];
|
|
"BiquadFilterNode" = [ "AudioNode" "EventTarget" ];
|
|
"BlobEvent" = [ "Event" ];
|
|
"Bluetooth" = [ "EventTarget" ];
|
|
"BluetoothAdvertisingEvent" = [ "Event" ];
|
|
"BluetoothDevice" = [ "EventTarget" ];
|
|
"BluetoothPermissionResult" = [ "EventTarget" "PermissionStatus" ];
|
|
"BluetoothRemoteGattCharacteristic" = [ "EventTarget" ];
|
|
"BluetoothRemoteGattService" = [ "EventTarget" ];
|
|
"BroadcastChannel" = [ "EventTarget" ];
|
|
"CanvasCaptureMediaStream" = [ "EventTarget" "MediaStream" ];
|
|
"CdataSection" = [ "CharacterData" "EventTarget" "Node" "Text" ];
|
|
"ChannelMergerNode" = [ "AudioNode" "EventTarget" ];
|
|
"ChannelSplitterNode" = [ "AudioNode" "EventTarget" ];
|
|
"CharacterData" = [ "EventTarget" "Node" ];
|
|
"ChromeWorker" = [ "EventTarget" "Worker" ];
|
|
"Clipboard" = [ "EventTarget" ];
|
|
"ClipboardEvent" = [ "Event" ];
|
|
"CloseEvent" = [ "Event" ];
|
|
"Comment" = [ "CharacterData" "EventTarget" "Node" ];
|
|
"CompositionEvent" = [ "Event" "UiEvent" ];
|
|
"ConstantSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ];
|
|
"ConvolverNode" = [ "AudioNode" "EventTarget" ];
|
|
"CssAnimation" = [ "Animation" "EventTarget" ];
|
|
"CssConditionRule" = [ "CssGroupingRule" "CssRule" ];
|
|
"CssCounterStyleRule" = [ "CssRule" ];
|
|
"CssFontFaceRule" = [ "CssRule" ];
|
|
"CssFontFeatureValuesRule" = [ "CssRule" ];
|
|
"CssGroupingRule" = [ "CssRule" ];
|
|
"CssImportRule" = [ "CssRule" ];
|
|
"CssKeyframeRule" = [ "CssRule" ];
|
|
"CssKeyframesRule" = [ "CssRule" ];
|
|
"CssMediaRule" = [ "CssConditionRule" "CssGroupingRule" "CssRule" ];
|
|
"CssNamespaceRule" = [ "CssRule" ];
|
|
"CssPageRule" = [ "CssRule" ];
|
|
"CssStyleRule" = [ "CssRule" ];
|
|
"CssStyleSheet" = [ "StyleSheet" ];
|
|
"CssSupportsRule" = [ "CssConditionRule" "CssGroupingRule" "CssRule" ];
|
|
"CssTransition" = [ "Animation" "EventTarget" ];
|
|
"CustomEvent" = [ "Event" ];
|
|
"DedicatedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ];
|
|
"DelayNode" = [ "AudioNode" "EventTarget" ];
|
|
"DeviceLightEvent" = [ "Event" ];
|
|
"DeviceMotionEvent" = [ "Event" ];
|
|
"DeviceOrientationEvent" = [ "Event" ];
|
|
"DeviceProximityEvent" = [ "Event" ];
|
|
"Document" = [ "EventTarget" "Node" ];
|
|
"DocumentFragment" = [ "EventTarget" "Node" ];
|
|
"DocumentTimeline" = [ "AnimationTimeline" ];
|
|
"DocumentType" = [ "EventTarget" "Node" ];
|
|
"DomMatrix" = [ "DomMatrixReadOnly" ];
|
|
"DomPoint" = [ "DomPointReadOnly" ];
|
|
"DomRect" = [ "DomRectReadOnly" ];
|
|
"DomRequest" = [ "EventTarget" ];
|
|
"DragEvent" = [ "Event" "MouseEvent" "UiEvent" ];
|
|
"DynamicsCompressorNode" = [ "AudioNode" "EventTarget" ];
|
|
"Element" = [ "EventTarget" "Node" ];
|
|
"ErrorEvent" = [ "Event" ];
|
|
"EventSource" = [ "EventTarget" ];
|
|
"ExtendableEvent" = [ "Event" ];
|
|
"ExtendableMessageEvent" = [ "Event" "ExtendableEvent" ];
|
|
"FetchEvent" = [ "Event" "ExtendableEvent" ];
|
|
"FetchObserver" = [ "EventTarget" ];
|
|
"File" = [ "Blob" ];
|
|
"FileReader" = [ "EventTarget" ];
|
|
"FileSystemDirectoryEntry" = [ "FileSystemEntry" ];
|
|
"FileSystemFileEntry" = [ "FileSystemEntry" ];
|
|
"FocusEvent" = [ "Event" "UiEvent" ];
|
|
"FontFaceSet" = [ "EventTarget" ];
|
|
"FontFaceSetLoadEvent" = [ "Event" ];
|
|
"GainNode" = [ "AudioNode" "EventTarget" ];
|
|
"GamepadAxisMoveEvent" = [ "Event" "GamepadEvent" ];
|
|
"GamepadButtonEvent" = [ "Event" "GamepadEvent" ];
|
|
"GamepadEvent" = [ "Event" ];
|
|
"GpuDevice" = [ "EventTarget" ];
|
|
"GpuUncapturedErrorEvent" = [ "Event" ];
|
|
"HashChangeEvent" = [ "Event" ];
|
|
"HtmlAnchorElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlAreaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlAudioElement" = [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ];
|
|
"HtmlBaseElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlBodyElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlBrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlButtonElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlCanvasElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlDListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlDataElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlDataListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlDetailsElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlDialogElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlDirectoryElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlDivElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlDocument" = [ "Document" "EventTarget" "Node" ];
|
|
"HtmlElement" = [ "Element" "EventTarget" "Node" ];
|
|
"HtmlEmbedElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlFieldSetElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlFontElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlFormControlsCollection" = [ "HtmlCollection" ];
|
|
"HtmlFormElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlFrameElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlFrameSetElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlHeadElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlHeadingElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlHrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlHtmlElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlIFrameElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlImageElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlInputElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlLabelElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlLegendElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlLiElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlLinkElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlMapElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlMediaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlMenuElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlMenuItemElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlMetaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlMeterElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlModElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlOListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlObjectElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlOptGroupElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlOptionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlOptionsCollection" = [ "HtmlCollection" ];
|
|
"HtmlOutputElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlParagraphElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlParamElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlPictureElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlPreElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlProgressElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlQuoteElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlScriptElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlSelectElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlSlotElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlSourceElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlSpanElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlStyleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlTableCaptionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlTableCellElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlTableColElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlTableElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlTableRowElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlTableSectionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlTemplateElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlTextAreaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlTimeElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlTitleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlTrackElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlUListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlUnknownElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
|
|
"HtmlVideoElement" = [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ];
|
|
"IdbCursorWithValue" = [ "IdbCursor" ];
|
|
"IdbDatabase" = [ "EventTarget" ];
|
|
"IdbFileHandle" = [ "EventTarget" ];
|
|
"IdbFileRequest" = [ "DomRequest" "EventTarget" ];
|
|
"IdbLocaleAwareKeyRange" = [ "IdbKeyRange" ];
|
|
"IdbMutableFile" = [ "EventTarget" ];
|
|
"IdbOpenDbRequest" = [ "EventTarget" "IdbRequest" ];
|
|
"IdbRequest" = [ "EventTarget" ];
|
|
"IdbTransaction" = [ "EventTarget" ];
|
|
"IdbVersionChangeEvent" = [ "Event" ];
|
|
"IirFilterNode" = [ "AudioNode" "EventTarget" ];
|
|
"ImageCaptureErrorEvent" = [ "Event" ];
|
|
"InputEvent" = [ "Event" "UiEvent" ];
|
|
"KeyboardEvent" = [ "Event" "UiEvent" ];
|
|
"KeyframeEffect" = [ "AnimationEffect" ];
|
|
"LocalMediaStream" = [ "EventTarget" "MediaStream" ];
|
|
"MediaDevices" = [ "EventTarget" ];
|
|
"MediaElementAudioSourceNode" = [ "AudioNode" "EventTarget" ];
|
|
"MediaEncryptedEvent" = [ "Event" ];
|
|
"MediaKeyError" = [ "Event" ];
|
|
"MediaKeyMessageEvent" = [ "Event" ];
|
|
"MediaKeySession" = [ "EventTarget" ];
|
|
"MediaQueryList" = [ "EventTarget" ];
|
|
"MediaQueryListEvent" = [ "Event" ];
|
|
"MediaRecorder" = [ "EventTarget" ];
|
|
"MediaRecorderErrorEvent" = [ "Event" ];
|
|
"MediaSource" = [ "EventTarget" ];
|
|
"MediaStream" = [ "EventTarget" ];
|
|
"MediaStreamAudioDestinationNode" = [ "AudioNode" "EventTarget" ];
|
|
"MediaStreamAudioSourceNode" = [ "AudioNode" "EventTarget" ];
|
|
"MediaStreamEvent" = [ "Event" ];
|
|
"MediaStreamTrack" = [ "EventTarget" ];
|
|
"MediaStreamTrackEvent" = [ "Event" ];
|
|
"MessageEvent" = [ "Event" ];
|
|
"MessagePort" = [ "EventTarget" ];
|
|
"MidiAccess" = [ "EventTarget" ];
|
|
"MidiConnectionEvent" = [ "Event" ];
|
|
"MidiInput" = [ "EventTarget" "MidiPort" ];
|
|
"MidiMessageEvent" = [ "Event" ];
|
|
"MidiOutput" = [ "EventTarget" "MidiPort" ];
|
|
"MidiPort" = [ "EventTarget" ];
|
|
"MouseEvent" = [ "Event" "UiEvent" ];
|
|
"MouseScrollEvent" = [ "Event" "MouseEvent" "UiEvent" ];
|
|
"MutationEvent" = [ "Event" ];
|
|
"NetworkInformation" = [ "EventTarget" ];
|
|
"Node" = [ "EventTarget" ];
|
|
"Notification" = [ "EventTarget" ];
|
|
"NotificationEvent" = [ "Event" "ExtendableEvent" ];
|
|
"OfflineAudioCompletionEvent" = [ "Event" ];
|
|
"OfflineAudioContext" = [ "BaseAudioContext" "EventTarget" ];
|
|
"OfflineResourceList" = [ "EventTarget" ];
|
|
"OffscreenCanvas" = [ "EventTarget" ];
|
|
"OscillatorNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ];
|
|
"PageTransitionEvent" = [ "Event" ];
|
|
"PaintWorkletGlobalScope" = [ "WorkletGlobalScope" ];
|
|
"PannerNode" = [ "AudioNode" "EventTarget" ];
|
|
"PaymentMethodChangeEvent" = [ "Event" "PaymentRequestUpdateEvent" ];
|
|
"PaymentRequestUpdateEvent" = [ "Event" ];
|
|
"Performance" = [ "EventTarget" ];
|
|
"PerformanceMark" = [ "PerformanceEntry" ];
|
|
"PerformanceMeasure" = [ "PerformanceEntry" ];
|
|
"PerformanceNavigationTiming" = [ "PerformanceEntry" "PerformanceResourceTiming" ];
|
|
"PerformanceResourceTiming" = [ "PerformanceEntry" ];
|
|
"PermissionStatus" = [ "EventTarget" ];
|
|
"PointerEvent" = [ "Event" "MouseEvent" "UiEvent" ];
|
|
"PopStateEvent" = [ "Event" ];
|
|
"PopupBlockedEvent" = [ "Event" ];
|
|
"PresentationAvailability" = [ "EventTarget" ];
|
|
"PresentationConnection" = [ "EventTarget" ];
|
|
"PresentationConnectionAvailableEvent" = [ "Event" ];
|
|
"PresentationConnectionCloseEvent" = [ "Event" ];
|
|
"PresentationConnectionList" = [ "EventTarget" ];
|
|
"PresentationRequest" = [ "EventTarget" ];
|
|
"ProcessingInstruction" = [ "CharacterData" "EventTarget" "Node" ];
|
|
"ProgressEvent" = [ "Event" ];
|
|
"PromiseRejectionEvent" = [ "Event" ];
|
|
"PublicKeyCredential" = [ "Credential" ];
|
|
"PushEvent" = [ "Event" "ExtendableEvent" ];
|
|
"RadioNodeList" = [ "NodeList" ];
|
|
"RtcDataChannel" = [ "EventTarget" ];
|
|
"RtcDataChannelEvent" = [ "Event" ];
|
|
"RtcPeerConnection" = [ "EventTarget" ];
|
|
"RtcPeerConnectionIceEvent" = [ "Event" ];
|
|
"RtcTrackEvent" = [ "Event" ];
|
|
"RtcdtmfSender" = [ "EventTarget" ];
|
|
"RtcdtmfToneChangeEvent" = [ "Event" ];
|
|
"Screen" = [ "EventTarget" ];
|
|
"ScreenOrientation" = [ "EventTarget" ];
|
|
"ScriptProcessorNode" = [ "AudioNode" "EventTarget" ];
|
|
"ScrollAreaEvent" = [ "Event" "UiEvent" ];
|
|
"SecurityPolicyViolationEvent" = [ "Event" ];
|
|
"ServiceWorker" = [ "EventTarget" ];
|
|
"ServiceWorkerContainer" = [ "EventTarget" ];
|
|
"ServiceWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ];
|
|
"ServiceWorkerRegistration" = [ "EventTarget" ];
|
|
"ShadowRoot" = [ "DocumentFragment" "EventTarget" "Node" ];
|
|
"SharedWorker" = [ "EventTarget" ];
|
|
"SharedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ];
|
|
"SourceBuffer" = [ "EventTarget" ];
|
|
"SourceBufferList" = [ "EventTarget" ];
|
|
"SpeechRecognition" = [ "EventTarget" ];
|
|
"SpeechRecognitionError" = [ "Event" ];
|
|
"SpeechRecognitionEvent" = [ "Event" ];
|
|
"SpeechSynthesis" = [ "EventTarget" ];
|
|
"SpeechSynthesisErrorEvent" = [ "Event" "SpeechSynthesisEvent" ];
|
|
"SpeechSynthesisEvent" = [ "Event" ];
|
|
"SpeechSynthesisUtterance" = [ "EventTarget" ];
|
|
"StereoPannerNode" = [ "AudioNode" "EventTarget" ];
|
|
"StorageEvent" = [ "Event" ];
|
|
"SvgAnimateElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
|
|
"SvgAnimateMotionElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
|
|
"SvgAnimateTransformElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
|
|
"SvgAnimationElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgCircleElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
|
|
"SvgClipPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgComponentTransferFunctionElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgDefsElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
|
|
"SvgDescElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgElement" = [ "Element" "EventTarget" "Node" ];
|
|
"SvgEllipseElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
|
|
"SvgFilterElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgForeignObjectElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
|
|
"SvgGeometryElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
|
|
"SvgGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgGraphicsElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgImageElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
|
|
"SvgLineElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
|
|
"SvgLinearGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGradientElement" ];
|
|
"SvgMarkerElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgMaskElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgMetadataElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
|
|
"SvgPathSegArcAbs" = [ "SvgPathSeg" ];
|
|
"SvgPathSegArcRel" = [ "SvgPathSeg" ];
|
|
"SvgPathSegClosePath" = [ "SvgPathSeg" ];
|
|
"SvgPathSegCurvetoCubicAbs" = [ "SvgPathSeg" ];
|
|
"SvgPathSegCurvetoCubicRel" = [ "SvgPathSeg" ];
|
|
"SvgPathSegCurvetoCubicSmoothAbs" = [ "SvgPathSeg" ];
|
|
"SvgPathSegCurvetoCubicSmoothRel" = [ "SvgPathSeg" ];
|
|
"SvgPathSegCurvetoQuadraticAbs" = [ "SvgPathSeg" ];
|
|
"SvgPathSegCurvetoQuadraticRel" = [ "SvgPathSeg" ];
|
|
"SvgPathSegCurvetoQuadraticSmoothAbs" = [ "SvgPathSeg" ];
|
|
"SvgPathSegCurvetoQuadraticSmoothRel" = [ "SvgPathSeg" ];
|
|
"SvgPathSegLinetoAbs" = [ "SvgPathSeg" ];
|
|
"SvgPathSegLinetoHorizontalAbs" = [ "SvgPathSeg" ];
|
|
"SvgPathSegLinetoHorizontalRel" = [ "SvgPathSeg" ];
|
|
"SvgPathSegLinetoRel" = [ "SvgPathSeg" ];
|
|
"SvgPathSegLinetoVerticalAbs" = [ "SvgPathSeg" ];
|
|
"SvgPathSegLinetoVerticalRel" = [ "SvgPathSeg" ];
|
|
"SvgPathSegMovetoAbs" = [ "SvgPathSeg" ];
|
|
"SvgPathSegMovetoRel" = [ "SvgPathSeg" ];
|
|
"SvgPatternElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgPolygonElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
|
|
"SvgPolylineElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
|
|
"SvgRadialGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGradientElement" ];
|
|
"SvgRectElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
|
|
"SvgScriptElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgSetElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
|
|
"SvgStopElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgStyleElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgSwitchElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
|
|
"SvgSymbolElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgTextContentElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
|
|
"SvgTextElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" "SvgTextPositioningElement" ];
|
|
"SvgTextPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" ];
|
|
"SvgTextPositioningElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" ];
|
|
"SvgTitleElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgUseElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
|
|
"SvgViewElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgaElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
|
|
"SvgfeBlendElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeColorMatrixElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeComponentTransferElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeCompositeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeConvolveMatrixElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeDiffuseLightingElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeDisplacementMapElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeDistantLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeDropShadowElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeFloodElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeFuncAElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
|
|
"SvgfeFuncBElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
|
|
"SvgfeFuncGElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
|
|
"SvgfeFuncRElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
|
|
"SvgfeGaussianBlurElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeImageElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeMergeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeMergeNodeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeMorphologyElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeOffsetElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfePointLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeSpecularLightingElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeSpotLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeTileElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgfeTurbulenceElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvggElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
|
|
"SvgmPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
|
|
"SvgsvgElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
|
|
"SvgtSpanElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" "SvgTextPositioningElement" ];
|
|
"TcpServerSocket" = [ "EventTarget" ];
|
|
"TcpServerSocketEvent" = [ "Event" ];
|
|
"TcpSocket" = [ "EventTarget" ];
|
|
"TcpSocketErrorEvent" = [ "Event" ];
|
|
"TcpSocketEvent" = [ "Event" ];
|
|
"Text" = [ "CharacterData" "EventTarget" "Node" ];
|
|
"TextTrack" = [ "EventTarget" ];
|
|
"TextTrackCue" = [ "EventTarget" ];
|
|
"TextTrackList" = [ "EventTarget" ];
|
|
"TimeEvent" = [ "Event" ];
|
|
"TouchEvent" = [ "Event" "UiEvent" ];
|
|
"TrackEvent" = [ "Event" ];
|
|
"TransitionEvent" = [ "Event" ];
|
|
"UiEvent" = [ "Event" ];
|
|
"Usb" = [ "EventTarget" ];
|
|
"UsbConnectionEvent" = [ "Event" ];
|
|
"UsbPermissionResult" = [ "EventTarget" "PermissionStatus" ];
|
|
"UserProximityEvent" = [ "Event" ];
|
|
"ValueEvent" = [ "Event" ];
|
|
"VideoStreamTrack" = [ "EventTarget" "MediaStreamTrack" ];
|
|
"VideoTrackList" = [ "EventTarget" ];
|
|
"VrDisplay" = [ "EventTarget" ];
|
|
"VttCue" = [ "EventTarget" "TextTrackCue" ];
|
|
"WaveShaperNode" = [ "AudioNode" "EventTarget" ];
|
|
"WebGlContextEvent" = [ "Event" ];
|
|
"WebKitCssMatrix" = [ "DomMatrix" "DomMatrixReadOnly" ];
|
|
"WebSocket" = [ "EventTarget" ];
|
|
"WheelEvent" = [ "Event" "MouseEvent" "UiEvent" ];
|
|
"Window" = [ "EventTarget" ];
|
|
"WindowClient" = [ "Client" ];
|
|
"Worker" = [ "EventTarget" ];
|
|
"WorkerDebuggerGlobalScope" = [ "EventTarget" ];
|
|
"WorkerGlobalScope" = [ "EventTarget" ];
|
|
"XmlDocument" = [ "Document" "EventTarget" "Node" ];
|
|
"XmlHttpRequest" = [ "EventTarget" "XmlHttpRequestEventTarget" ];
|
|
"XmlHttpRequestEventTarget" = [ "EventTarget" ];
|
|
"XmlHttpRequestUpload" = [ "EventTarget" "XmlHttpRequestEventTarget" ];
|
|
"Xr" = [ "EventTarget" ];
|
|
"XrBoundedReferenceSpace" = [ "EventTarget" "XrReferenceSpace" "XrSpace" ];
|
|
"XrInputSourceEvent" = [ "Event" ];
|
|
"XrInputSourcesChangeEvent" = [ "Event" ];
|
|
"XrReferenceSpace" = [ "EventTarget" "XrSpace" ];
|
|
"XrReferenceSpaceEvent" = [ "Event" ];
|
|
"XrSession" = [ "EventTarget" ];
|
|
"XrSessionEvent" = [ "Event" ];
|
|
"XrSpace" = [ "EventTarget" ];
|
|
"XrViewerPose" = [ "XrPose" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "Crypto" "EventTarget" "Window" ];
|
|
};
|
|
"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.config == "i686-pc-windows-gnu");
|
|
}
|
|
{
|
|
name = "winapi-x86_64-pc-windows-gnu";
|
|
packageId = "winapi-x86_64-pc-windows-gnu";
|
|
target = { target, features }: (stdenv.hostPlatform.config == "x86_64-pc-windows-gnu");
|
|
}
|
|
];
|
|
features = {
|
|
"debug" = [ "impl-debug" ];
|
|
};
|
|
resolvedDefaultFeatures = [ "cfg" "consoleapi" "errhandlingapi" "evntrace" "fileapi" "handleapi" "in6addr" "inaddr" "ioapiset" "minwinbase" "minwindef" "mswsock" "namedpipeapi" "ntdef" "ntsecapi" "ntstatus" "profileapi" "std" "synchapi" "threadpoollegacyapiset" "winbase" "windef" "winerror" "winioctl" "winnt" "winsock2" "ws2def" "ws2ipdef" "ws2tcpip" "wtypesbase" ];
|
|
};
|
|
"winapi-i686-pc-windows-gnu" = rec {
|
|
crateName = "winapi-i686-pc-windows-gnu";
|
|
version = "0.4.0";
|
|
edition = "2015";
|
|
sha256 = "1dmpa6mvcvzz16zg6d5vrfy4bxgg541wxrcip7cnshi06v38ffxc";
|
|
authors = [
|
|
"Peter Atashian <retep998@gmail.com>"
|
|
];
|
|
|
|
};
|
|
"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>"
|
|
];
|
|
|
|
};
|
|
};
|
|
|
|
#
|
|
# crate2nix/default.nix (excerpt start)
|
|
#
|
|
|
|
/* Target (platform) data for conditional dependencies.
|
|
This corresponds roughly to what buildRustCrate is setting.
|
|
*/
|
|
defaultTarget = {
|
|
unix = true;
|
|
windows = false;
|
|
fuchsia = true;
|
|
test = false;
|
|
|
|
# This doesn't appear to be officially documented anywhere yet.
|
|
# See https://github.com/rust-lang-nursery/rust-forge/issues/101.
|
|
os =
|
|
if stdenv.hostPlatform.isDarwin
|
|
then "macos"
|
|
else stdenv.hostPlatform.parsed.kernel.name;
|
|
arch = stdenv.hostPlatform.parsed.cpu.name;
|
|
family = "unix";
|
|
env = "gnu";
|
|
endian =
|
|
if stdenv.hostPlatform.parsed.cpu.significantByte.name == "littleEndian"
|
|
then "little" else "big";
|
|
pointer_width = toString stdenv.hostPlatform.parsed.cpu.bits;
|
|
vendor = stdenv.hostPlatform.parsed.vendor.name;
|
|
debug_assertions = false;
|
|
};
|
|
|
|
/* Filters common temp files and build files. */
|
|
# TODO(pkolloch): Substitute with gitignore filter
|
|
sourceFilter = name: type:
|
|
let
|
|
baseName = builtins.baseNameOf (builtins.toString name);
|
|
in
|
|
! (
|
|
# Filter out git
|
|
baseName == ".gitignore"
|
|
|| (type == "directory" && baseName == ".git")
|
|
|
|
# Filter out build results
|
|
|| (
|
|
type == "directory" && (
|
|
baseName == "target"
|
|
|| baseName == "_site"
|
|
|| baseName == ".sass-cache"
|
|
|| baseName == ".jekyll-metadata"
|
|
|| baseName == "build-artifacts"
|
|
)
|
|
)
|
|
|
|
# Filter out nix-build result symlinks
|
|
|| (
|
|
type == "symlink" && lib.hasPrefix "result" baseName
|
|
)
|
|
|
|
# Filter out IDE config
|
|
|| (
|
|
type == "directory" && (
|
|
baseName == ".idea" || baseName == ".vscode"
|
|
)
|
|
) || lib.hasSuffix ".iml" baseName
|
|
|
|
# Filter out nix build files
|
|
|| baseName == "Cargo.nix"
|
|
|
|
# Filter out editor backup / swap files.
|
|
|| lib.hasSuffix "~" baseName
|
|
|| builtins.match "^\\.sw[a-z]$$" baseName != null
|
|
|| builtins.match "^\\..*\\.sw[a-z]$$" baseName != null
|
|
|| lib.hasSuffix ".tmp" baseName
|
|
|| lib.hasSuffix ".bak" baseName
|
|
|| baseName == "tests.nix"
|
|
);
|
|
|
|
/* Returns a crate which depends on successful test execution
|
|
of crate given as the second argument.
|
|
|
|
testCrateFlags: list of flags to pass to the test exectuable
|
|
testInputs: list of packages that should be available during test execution
|
|
*/
|
|
crateWithTest = { crate, testCrate, testCrateFlags, testInputs }:
|
|
assert builtins.typeOf testCrateFlags == "list";
|
|
assert builtins.typeOf testInputs == "list";
|
|
let
|
|
# override the `crate` so that it will build and execute tests instead of
|
|
# building the actual lib and bin targets We just have to pass `--test`
|
|
# to rustc and it will do the right thing. We execute the tests and copy
|
|
# their log and the test executables to $out for later inspection.
|
|
test =
|
|
let
|
|
drv = testCrate.override
|
|
(
|
|
_: {
|
|
buildTests = true;
|
|
}
|
|
);
|
|
in
|
|
pkgs.runCommand "run-tests-${testCrate.name}"
|
|
{
|
|
inherit testCrateFlags;
|
|
buildInputs = testInputs;
|
|
} ''
|
|
set -ex
|
|
|
|
export RUST_BACKTRACE=1
|
|
|
|
# recreate a file hierarchy as when running tests with cargo
|
|
|
|
# the source for test data
|
|
${pkgs.xorg.lndir}/bin/lndir ${crate.src}
|
|
|
|
# build outputs
|
|
testRoot=target/debug
|
|
mkdir -p $testRoot
|
|
|
|
# executables of the crate
|
|
# we copy to prevent std::env::current_exe() to resolve to a store location
|
|
for i in ${crate}/bin/*; do
|
|
cp "$i" "$testRoot"
|
|
done
|
|
chmod +w -R .
|
|
|
|
# test harness executables are suffixed with a hash, like cargo does
|
|
# this allows to prevent name collision with the main
|
|
# executables of the crate
|
|
hash=$(basename $out)
|
|
for file in ${drv}/tests/*; do
|
|
f=$testRoot/$(basename $file)-$hash
|
|
cp $file $f
|
|
$f $testCrateFlags 2>&1 | tee -a $out
|
|
done
|
|
'';
|
|
in
|
|
pkgs.runCommand "${crate.name}-linked"
|
|
{
|
|
inherit (crate) outputs crateName;
|
|
passthru = (crate.passthru or { }) // {
|
|
inherit test;
|
|
};
|
|
} ''
|
|
echo tested by ${test}
|
|
${lib.concatMapStringsSep "\n" (output: "ln -s ${crate.${output}} ${"$"}${output}") crate.outputs}
|
|
'';
|
|
|
|
/* A restricted overridable version of builtRustCratesWithFeatures. */
|
|
buildRustCrateWithFeatures =
|
|
{ packageId
|
|
, features ? rootFeatures
|
|
, crateOverrides ? defaultCrateOverrides
|
|
, buildRustCrateFunc ? null
|
|
, runTests ? false
|
|
, testCrateFlags ? [ ]
|
|
, testInputs ? [ ]
|
|
}:
|
|
lib.makeOverridable
|
|
(
|
|
{ features
|
|
, crateOverrides
|
|
, runTests
|
|
, testCrateFlags
|
|
, testInputs
|
|
}:
|
|
let
|
|
buildRustCrateFuncOverriden =
|
|
if buildRustCrateFunc != null
|
|
then buildRustCrateFunc
|
|
else
|
|
(
|
|
if crateOverrides == pkgs.defaultCrateOverrides
|
|
then buildRustCrate
|
|
else
|
|
buildRustCrate.override {
|
|
defaultCrateOverrides = crateOverrides;
|
|
}
|
|
);
|
|
builtRustCrates = builtRustCratesWithFeatures {
|
|
inherit packageId features;
|
|
buildRustCrateFunc = buildRustCrateFuncOverriden;
|
|
runTests = false;
|
|
};
|
|
builtTestRustCrates = builtRustCratesWithFeatures {
|
|
inherit packageId features;
|
|
buildRustCrateFunc = buildRustCrateFuncOverriden;
|
|
runTests = true;
|
|
};
|
|
drv = builtRustCrates.${packageId};
|
|
testDrv = builtTestRustCrates.${packageId};
|
|
derivation =
|
|
if runTests then
|
|
crateWithTest
|
|
{
|
|
crate = drv;
|
|
testCrate = testDrv;
|
|
inherit testCrateFlags testInputs;
|
|
}
|
|
else drv;
|
|
in
|
|
derivation
|
|
)
|
|
{ inherit features crateOverrides runTests testCrateFlags testInputs; };
|
|
|
|
/* Returns an attr set with packageId mapped to the result of buildRustCrateFunc
|
|
for the corresponding crate.
|
|
*/
|
|
builtRustCratesWithFeatures =
|
|
{ packageId
|
|
, features
|
|
, crateConfigs ? crates
|
|
, buildRustCrateFunc
|
|
, runTests
|
|
, target ? defaultTarget
|
|
} @ args:
|
|
assert (builtins.isAttrs crateConfigs);
|
|
assert (builtins.isString packageId);
|
|
assert (builtins.isList features);
|
|
assert (builtins.isAttrs target);
|
|
assert (builtins.isBool runTests);
|
|
let
|
|
rootPackageId = packageId;
|
|
mergedFeatures = mergePackageFeatures
|
|
(
|
|
args // {
|
|
inherit rootPackageId;
|
|
target = target // { test = runTests; };
|
|
}
|
|
);
|
|
buildByPackageId = packageId: buildByPackageIdImpl packageId;
|
|
|
|
# Memoize built packages so that reappearing packages are only built once.
|
|
builtByPackageId =
|
|
lib.mapAttrs (packageId: value: buildByPackageId packageId) crateConfigs;
|
|
buildByPackageIdImpl = 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 builtByPackageId features target;
|
|
dependencies =
|
|
(crateConfig.dependencies or [ ])
|
|
++ devDependencies;
|
|
};
|
|
buildDependencies =
|
|
dependencyDerivations {
|
|
inherit builtByPackageId features target;
|
|
dependencies = crateConfig.buildDependencies or [ ];
|
|
};
|
|
filterEnabledDependenciesForThis = dependencies: filterEnabledDependencies {
|
|
inherit dependencies features target;
|
|
};
|
|
dependenciesWithRenames =
|
|
lib.filter (d: d ? "rename")
|
|
(
|
|
filterEnabledDependenciesForThis
|
|
(
|
|
(crateConfig.buildDependencies or [ ])
|
|
++ (crateConfig.dependencies or [ ])
|
|
++ devDependencies
|
|
)
|
|
);
|
|
# Crate renames have the form:
|
|
#
|
|
# {
|
|
# crate_name = [
|
|
# { version = "1.2.3"; rename = "crate_name01"; }
|
|
# ];
|
|
# # ...
|
|
# }
|
|
crateRenames =
|
|
let
|
|
grouped =
|
|
lib.groupBy
|
|
(dependency: dependency.name)
|
|
dependenciesWithRenames;
|
|
versionAndRename = dep:
|
|
let
|
|
package = builtByPackageId."${dep.packageId}";
|
|
in
|
|
{ inherit (dep) rename; version = package.version; };
|
|
in
|
|
lib.mapAttrs (name: choices: builtins.map versionAndRename choices) grouped;
|
|
in
|
|
buildRustCrateFunc
|
|
(
|
|
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=${stdenv.lib.concatMapStringsSep "," (x: "+${x}") targetFeatures}";
|
|
inherit features dependencies buildDependencies crateRenames release;
|
|
}
|
|
);
|
|
in
|
|
builtByPackageId;
|
|
|
|
/* Returns the actual derivations for the given dependencies. */
|
|
dependencyDerivations =
|
|
{ builtByPackageId
|
|
, features
|
|
, dependencies
|
|
, target
|
|
}:
|
|
assert (builtins.isAttrs builtByPackageId);
|
|
assert (builtins.isList features);
|
|
assert (builtins.isList dependencies);
|
|
assert (builtins.isAttrs target);
|
|
let
|
|
enabledDependencies = filterEnabledDependencies {
|
|
inherit dependencies features target;
|
|
};
|
|
depDerivation = dependency: builtByPackageId.${dependency.packageId};
|
|
in
|
|
map depDerivation enabledDependencies;
|
|
|
|
/* Returns a sanitized version of val with all values substituted that cannot
|
|
be serialized as JSON.
|
|
*/
|
|
sanitizeForJson = val:
|
|
if builtins.isAttrs val
|
|
then lib.mapAttrs (n: v: sanitizeForJson v) val
|
|
else if builtins.isList val
|
|
then builtins.map sanitizeForJson val
|
|
else if builtins.isFunction val
|
|
then "function"
|
|
else val;
|
|
|
|
/* Returns various tools to debug a crate. */
|
|
debugCrate = { packageId, target ? defaultTarget }:
|
|
assert (builtins.isString packageId);
|
|
let
|
|
debug = rec {
|
|
# The built tree as passed to buildRustCrate.
|
|
buildTree = buildRustCrateWithFeatures {
|
|
buildRustCrateFunc = lib.id;
|
|
inherit packageId;
|
|
};
|
|
sanitizedBuildTree = sanitizeForJson buildTree;
|
|
dependencyTree = sanitizeForJson
|
|
(
|
|
buildRustCrateWithFeatures {
|
|
buildRustCrateFunc = crate: {
|
|
"01_crateName" = crate.crateName or false;
|
|
"02_features" = crate.features or [ ];
|
|
"03_dependencies" = crate.dependencies or [ ];
|
|
};
|
|
inherit packageId;
|
|
}
|
|
);
|
|
mergedPackageFeatures = mergePackageFeatures {
|
|
features = rootFeatures;
|
|
inherit packageId target;
|
|
};
|
|
diffedDefaultPackageFeatures = diffDefaultPackageFeatures {
|
|
inherit packageId target;
|
|
};
|
|
};
|
|
in
|
|
{ internal = debug; };
|
|
|
|
/* Returns differences between cargo default features and crate2nix default
|
|
features.
|
|
|
|
This is useful for verifying the feature resolution in crate2nix.
|
|
*/
|
|
diffDefaultPackageFeatures =
|
|
{ crateConfigs ? crates
|
|
, packageId
|
|
, target
|
|
}:
|
|
assert (builtins.isAttrs crateConfigs);
|
|
let
|
|
prefixValues = prefix: lib.mapAttrs (n: v: { "${prefix}" = v; });
|
|
mergedFeatures =
|
|
prefixValues
|
|
"crate2nix"
|
|
(mergePackageFeatures { inherit crateConfigs packageId target; features = [ "default" ]; });
|
|
configs = prefixValues "cargo" crateConfigs;
|
|
combined = lib.foldAttrs (a: b: a // b) { } [ mergedFeatures configs ];
|
|
onlyInCargo =
|
|
builtins.attrNames
|
|
(lib.filterAttrs (n: v: !(v ? "crate2nix") && (v ? "cargo")) combined);
|
|
onlyInCrate2Nix =
|
|
builtins.attrNames
|
|
(lib.filterAttrs (n: v: (v ? "crate2nix") && !(v ? "cargo")) combined);
|
|
differentFeatures = lib.filterAttrs
|
|
(
|
|
n: v:
|
|
(v ? "crate2nix")
|
|
&& (v ? "cargo")
|
|
&& (v.crate2nix.features or [ ]) != (v."cargo".resolved_default_features or [ ])
|
|
)
|
|
combined;
|
|
in
|
|
builtins.toJSON {
|
|
inherit onlyInCargo onlyInCrate2Nix differentFeatures;
|
|
};
|
|
|
|
/* Returns an attrset mapping packageId to the list of enabled features.
|
|
|
|
If multiple paths to a dependency enable different features, the
|
|
corresponding feature sets are merged. Features in rust are additive.
|
|
*/
|
|
mergePackageFeatures =
|
|
{ crateConfigs ? crates
|
|
, packageId
|
|
, rootPackageId ? packageId
|
|
, features ? rootFeatures
|
|
, dependencyPath ? [ crates.${packageId}.crateName ]
|
|
, featuresByPackageId ? { }
|
|
, target
|
|
# Adds devDependencies to the crate with rootPackageId.
|
|
, runTests ? false
|
|
, ...
|
|
} @ args:
|
|
assert (builtins.isAttrs crateConfigs);
|
|
assert (builtins.isString packageId);
|
|
assert (builtins.isString rootPackageId);
|
|
assert (builtins.isList features);
|
|
assert (builtins.isList dependencyPath);
|
|
assert (builtins.isAttrs featuresByPackageId);
|
|
assert (builtins.isAttrs target);
|
|
assert (builtins.isBool runTests);
|
|
let
|
|
crateConfig = crateConfigs."${packageId}" or (builtins.throw "Package not found: ${packageId}");
|
|
expandedFeatures = expandFeatures (crateConfig.features or { }) features;
|
|
depWithResolvedFeatures = dependency:
|
|
let
|
|
packageId = dependency.packageId;
|
|
features = dependencyFeatures expandedFeatures dependency;
|
|
in
|
|
{ inherit packageId features; };
|
|
resolveDependencies = cache: path: dependencies:
|
|
assert (builtins.isAttrs cache);
|
|
assert (builtins.isList dependencies);
|
|
let
|
|
enabledDependencies = filterEnabledDependencies {
|
|
inherit dependencies target;
|
|
features = expandedFeatures;
|
|
};
|
|
directDependencies = map depWithResolvedFeatures enabledDependencies;
|
|
foldOverCache = op: lib.foldl op cache directDependencies;
|
|
in
|
|
foldOverCache
|
|
(
|
|
cache: { packageId, features }:
|
|
let
|
|
cacheFeatures = cache.${packageId} or [ ];
|
|
combinedFeatures = sortedUnique (cacheFeatures ++ features);
|
|
in
|
|
if cache ? ${packageId} && cache.${packageId} == combinedFeatures
|
|
then cache
|
|
else
|
|
mergePackageFeatures {
|
|
features = combinedFeatures;
|
|
featuresByPackageId = cache;
|
|
inherit crateConfigs packageId target runTests rootPackageId;
|
|
}
|
|
);
|
|
cacheWithSelf =
|
|
let
|
|
cacheFeatures = featuresByPackageId.${packageId} or [ ];
|
|
combinedFeatures = sortedUnique (cacheFeatures ++ expandedFeatures);
|
|
in
|
|
featuresByPackageId // {
|
|
"${packageId}" = combinedFeatures;
|
|
};
|
|
cacheWithDependencies =
|
|
resolveDependencies cacheWithSelf "dep"
|
|
(
|
|
crateConfig.dependencies or [ ]
|
|
++ lib.optionals
|
|
(runTests && packageId == rootPackageId)
|
|
(crateConfig.devDependencies or [ ])
|
|
);
|
|
cacheWithAll =
|
|
resolveDependencies
|
|
cacheWithDependencies "build"
|
|
(crateConfig.buildDependencies or [ ]);
|
|
in
|
|
cacheWithAll;
|
|
|
|
/* Returns the enabled dependencies given the enabled features. */
|
|
filterEnabledDependencies = { dependencies, features, target }:
|
|
assert (builtins.isList dependencies);
|
|
assert (builtins.isList features);
|
|
assert (builtins.isAttrs target);
|
|
|
|
lib.filter
|
|
(
|
|
dep:
|
|
let
|
|
targetFunc = dep.target or (features: true);
|
|
in
|
|
targetFunc { inherit features target; }
|
|
&& (
|
|
!(dep.optional or false)
|
|
|| builtins.any (doesFeatureEnableDependency dep) features
|
|
)
|
|
)
|
|
dependencies;
|
|
|
|
/* Returns whether the given feature should enable the given dependency. */
|
|
doesFeatureEnableDependency = { name, rename ? null, ... }: feature:
|
|
let
|
|
prefix = "${name}/";
|
|
len = builtins.stringLength prefix;
|
|
startsWithPrefix = builtins.substring 0 len feature == prefix;
|
|
in
|
|
(rename == null && feature == name)
|
|
|| (rename != null && rename == feature)
|
|
|| startsWithPrefix;
|
|
|
|
/* Returns the expanded features for the given inputFeatures by applying the
|
|
rules in featureMap.
|
|
|
|
featureMap is an attribute set which maps feature names to lists of further
|
|
feature names to enable in case this feature is selected.
|
|
*/
|
|
expandFeatures = featureMap: inputFeatures:
|
|
assert (builtins.isAttrs featureMap);
|
|
assert (builtins.isList inputFeatures);
|
|
let
|
|
expandFeature = feature:
|
|
assert (builtins.isString feature);
|
|
[ feature ] ++ (expandFeatures featureMap (featureMap."${feature}" or [ ]));
|
|
outFeatures = lib.concatMap expandFeature inputFeatures;
|
|
in
|
|
sortedUnique outFeatures;
|
|
|
|
/*
|
|
Returns the actual features for the given dependency.
|
|
|
|
features: The features of the crate that refers this dependency.
|
|
*/
|
|
dependencyFeatures = features: dependency:
|
|
assert (builtins.isList features);
|
|
assert (builtins.isAttrs dependency);
|
|
let
|
|
defaultOrNil =
|
|
if dependency.usesDefaultFeatures or true
|
|
then [ "default" ]
|
|
else [ ];
|
|
explicitFeatures = dependency.features or [ ];
|
|
additionalDependencyFeatures =
|
|
let
|
|
dependencyPrefix = (dependency.rename or dependency.name) + "/";
|
|
dependencyFeatures =
|
|
builtins.filter (f: lib.hasPrefix dependencyPrefix f) features;
|
|
in
|
|
builtins.map (lib.removePrefix dependencyPrefix) dependencyFeatures;
|
|
in
|
|
defaultOrNil ++ explicitFeatures ++ additionalDependencyFeatures;
|
|
|
|
/* Sorts and removes duplicates from a list of strings. */
|
|
sortedUnique = features:
|
|
assert (builtins.isList features);
|
|
assert (builtins.all builtins.isString features);
|
|
let
|
|
outFeaturesSet = lib.foldl (set: feature: set // { "${feature}" = 1; }) { } features;
|
|
outFeaturesUnique = builtins.attrNames outFeaturesSet;
|
|
in
|
|
builtins.sort (a: b: a < b) outFeaturesUnique;
|
|
|
|
deprecationWarning = message: value:
|
|
if strictDeprecation
|
|
then builtins.throw "strictDeprecation enabled, aborting: ${message}"
|
|
else builtins.trace message value;
|
|
|
|
#
|
|
# crate2nix/default.nix (excerpt end)
|
|
#
|
|
|
|
};
|
|
}
|