From cc67030828bf31728ddc5c7064bf0a88e0bbb88a Mon Sep 17 00:00:00 2001 From: Minijackson Date: Thu, 20 May 2021 20:18:33 +0200 Subject: update deps and nix, remove pa_eq as module is deprecated --- Cargo.lock | 971 +++++++++---------------- Cargo.toml | 10 +- build.rs | 7 +- derivation.nix | 16 +- spec.json | 2 +- spec.nix | 2 +- src/main.rs | 20 - src/pa_eq/dbus_api/equalizing_manager.rs | 291 -------- src/pa_eq/dbus_api/mod.rs | 6 - src/pa_eq/dbus_api/server_lookup.rs | 188 ----- src/pa_eq/dbus_api/sink.rs | 1128 ------------------------------ src/pa_eq/mod.rs | 115 --- src/utils.rs | 31 - 13 files changed, 356 insertions(+), 2431 deletions(-) delete mode 100644 src/pa_eq/dbus_api/equalizing_manager.rs delete mode 100644 src/pa_eq/dbus_api/mod.rs delete mode 100644 src/pa_eq/dbus_api/server_lookup.rs delete mode 100644 src/pa_eq/dbus_api/sink.rs delete mode 100644 src/pa_eq/mod.rs diff --git a/Cargo.lock b/Cargo.lock index e5b425d..24056de 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,1059 +1,764 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +[[package]] +name = "addr2line" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03345e98af8f3d786b6d9f656ccfa6ac316d954e92bc4841f0bba20789d5fb5a" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + [[package]] name = "aho-corasick" -version = "0.7.6" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" dependencies = [ - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr", ] [[package]] name = "ansi_term" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" dependencies = [ - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi", ] [[package]] name = "arrayref" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" [[package]] name = "arrayvec" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "ascii-canvas" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff8eb72df928aafb99fe5d37b383f2fe25bd2a765e3e5f7c365916b6f2463a29" dependencies = [ - "term 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "term", ] [[package]] name = "atty" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "hermit-abi", + "libc", + "winapi", ] [[package]] name = "autocfg" -version = "0.1.7" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "backtrace" -version = "0.3.40" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4717cfcbfaa661a0fd48f8453951837ae7e8f81e481fbb136e3202d72805a744" dependencies = [ - "backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "backtrace-sys" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", ] [[package]] name = "base64" -version = "0.10.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", -] +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "bit-set" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" dependencies = [ - "bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bit-vec", ] [[package]] name = "bit-vec" -version = "0.5.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] name = "bitflags" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" [[package]] name = "blake2b_simd" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", - "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "block-padding" -version = "0.1.5" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" dependencies = [ - "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayref", + "arrayvec", + "constant_time_eq", ] -[[package]] -name = "byte-tools" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "byteorder" -version = "1.3.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "cc" -version = "1.0.48" +version = "1.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" [[package]] name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "chrono" -version = "0.4.10" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", -] +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "2.33.0" +version = "2.33.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" dependencies = [ - "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "cloudabi" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", ] [[package]] name = "constant_time_eq" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "crossbeam-utils" -version = "0.6.6" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4feb231f0d4d6af81aed15928e58ecf5816aa62a2393e2c82f46973e92a9a278" dependencies = [ - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg", + "cfg-if", + "lazy_static", ] [[package]] -name = "dbus" -version = "0.6.5" +name = "crunchy" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "libdbus-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", -] +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "diff" version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "digest" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", -] +checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" [[package]] name = "dirs" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "docopt" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "strsim 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "redox_users", + "winapi", ] [[package]] name = "either" -version = "1.5.3" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "ena" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7402b94a93c24e742487327a7cd839dc9d36fec9de9fb25b09f2dae459f36c3" dependencies = [ - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "log", ] [[package]] name = "env_logger" -version = "0.6.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" dependencies = [ - "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", - "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "atty", + "humantime", + "log", + "regex", + "termcolor", ] [[package]] name = "failure" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" dependencies = [ - "backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace", + "failure_derive", ] [[package]] name = "failure_derive" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", - "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", + "quote", + "syn", + "synstructure", ] [[package]] -name = "fake-simd" -version = "0.1.2" +name = "fixedbitset" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" [[package]] -name = "fixedbitset" -version = "0.1.9" +name = "getrandom" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] [[package]] -name = "fuchsia-cprng" -version = "0.1.1" +name = "gimli" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4075386626662786ddb0ec9081e7c7eeb1ba31951f447ca780ef9f5d568189" + +[[package]] +name = "hashbrown" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" [[package]] -name = "generic-array" -version = "0.12.3" +name = "heck" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" dependencies = [ - "typenum 1.11.2 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-segmentation", ] [[package]] -name = "heck" -version = "0.3.1" +name = "hermit-abi" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" dependencies = [ - "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", ] [[package]] name = "humantime" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" dependencies = [ - "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "quick-error", +] + +[[package]] +name = "indexmap" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" +dependencies = [ + "autocfg", + "hashbrown", ] [[package]] name = "itertools" -version = "0.8.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319" dependencies = [ - "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "either", ] [[package]] name = "itoa" -version = "0.4.4" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" [[package]] name = "lalrpop" -version = "0.17.2" +version = "0.19.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46962a8c71b91c3524b117dfdd70844d4265a173c4c9109f98171aebdcf1195f" dependencies = [ - "ascii-canvas 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", - "bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "diff 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - "docopt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "ena 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)", - "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lalrpop-util 0.17.2 (registry+https://github.com/rust-lang/crates.io-index)", - "petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "string_cache 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", - "term 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ascii-canvas", + "atty", + "bit-set", + "diff", + "ena", + "itertools", + "lalrpop-util", + "petgraph", + "pico-args", + "regex", + "regex-syntax", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", ] [[package]] name = "lalrpop-util" -version = "0.17.2" +version = "0.19.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a708007b751af124d09e9c5d97515257902bc6b486a56b40bcafd939e8ff467" +dependencies = [ + "regex", +] [[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.66" +version = "0.2.94" source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "libdbus-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", -] +checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" [[package]] name = "log" -version = "0.4.8" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" dependencies = [ - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", ] [[package]] name = "memchr" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "new_debug_unreachable" -version = "1.0.4" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" [[package]] -name = "num-integer" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "num-traits" -version = "0.2.10" +name = "miniz_oxide" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "adler", + "autocfg", ] [[package]] -name = "opaque-debug" -version = "0.2.3" +name = "new_debug_unreachable" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" [[package]] -name = "ordermap" -version = "0.3.5" +name = "object" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5b3dd1c072ee7963717671d1ca129f1048fda25edea6b752bfc71ac8854170" [[package]] name = "petgraph" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "fixedbitset 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "ordermap 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "phf_generator" -version = "0.7.24" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" dependencies = [ - "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "fixedbitset", + "indexmap", ] [[package]] name = "phf_shared" -version = "0.7.24" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" dependencies = [ - "siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "siphasher", ] [[package]] -name = "pkg-config" -version = "0.3.17" +name = "pico-args" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d7afeb98c5a10e0bffcc7fc16e105b04d06729fac5fd6384aebf7ff5cb5a67d" [[package]] name = "precomputed-hash" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "pretty_env_logger" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d" dependencies = [ - "chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger", + "log", ] [[package]] name = "proc-macro-error" -version = "0.4.4" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ - "proc-macro-error-attr 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rustversion 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", ] [[package]] name = "proc-macro-error-attr" -version = "0.4.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rustversion 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", - "syn-mid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", + "quote", + "version_check", ] [[package]] name = "proc-macro2" -version = "1.0.7" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" dependencies = [ - "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid", ] [[package]] name = "quick-error" version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand_chacha" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "rand_hc" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand_isaac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand_jitter" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand_os" -version = "0.1.3" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" dependencies = [ - "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand_pcg" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand_xorshift" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rdrand" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", ] [[package]] name = "redox_syscall" -version = "0.1.56" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" [[package]] name = "redox_users" -version = "0.3.1" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d" dependencies = [ - "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom", + "redox_syscall", + "rust-argon2", ] [[package]] name = "regex" -version = "1.3.1" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" dependencies = [ - "aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick", + "memchr", + "regex-syntax", ] [[package]] name = "regex-syntax" -version = "0.6.12" +version = "0.6.25" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" [[package]] name = "rust-argon2" -version = "0.5.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" dependencies = [ - "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", + "base64", + "blake2b_simd", + "constant_time_eq", + "crossbeam-utils", ] [[package]] name = "rustc-demangle" -version = "0.1.16" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "rustversion" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", -] +checksum = "410f7acf3cb3a44527c5d9546bad4bf4e6c460915d5f9f2fc524498bfe8f70ce" [[package]] name = "ryu" -version = "1.0.2" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" [[package]] name = "serde" -version = "1.0.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "serde_derive" -version = "1.0.104" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", -] +checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03" [[package]] name = "serde_json" -version = "1.0.44" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" dependencies = [ - "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa", + "ryu", + "serde", ] [[package]] name = "set_eq" version = "0.1.0" dependencies = [ - "dbus 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "lalrpop 0.17.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lalrpop-util 0.17.2 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "pretty_env_logger 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "sha2" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", - "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure", + "lalrpop", + "lalrpop-util", + "log", + "pretty_env_logger", + "regex", + "serde_json", + "structopt", ] [[package]] name = "siphasher" -version = "0.2.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbce6d4507c7e4a3962091436e56e95290cb71fa302d0d270e32130b75fbff27" [[package]] name = "string_cache" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "new_debug_unreachable 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", - "precomputed-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "string_cache_codegen 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "string_cache_shared 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "string_cache_codegen" -version = "0.4.4" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ddb1139b5353f96e429e1a5e19fbaf663bddedaa06d1dbd49f82e352601209a" dependencies = [ - "phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", - "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "string_cache_shared 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static", + "new_debug_unreachable", + "phf_shared", + "precomputed-hash", ] -[[package]] -name = "string_cache_shared" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "strsim" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "strsim" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.7" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c" dependencies = [ - "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt-derive 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "clap", + "lazy_static", + "structopt-derive", ] [[package]] name = "structopt-derive" -version = "0.4.0" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90" dependencies = [ - "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro-error 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "syn" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "syn-mid" -version = "0.4.0" +version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82" dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", + "quote", + "unicode-xid", ] [[package]] name = "synstructure" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", + "quote", + "syn", + "unicode-xid", ] [[package]] name = "term" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder", + "dirs", + "winapi", ] [[package]] name = "termcolor" -version = "1.0.5" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" dependencies = [ - "wincolor 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util", ] [[package]] name = "textwrap" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" dependencies = [ - "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "thread_local" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-width", ] [[package]] -name = "time" -version = "0.1.42" +name = "tiny-keccak" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "crunchy", ] -[[package]] -name = "typenum" -version = "1.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "unicode-segmentation" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" [[package]] name = "unicode-width" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" [[package]] name = "unicode-xid" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" [[package]] -name = "unicode-xid" -version = "0.2.0" +name = "vec_map" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] -name = "vec_map" -version = "0.8.1" +name = "version_check" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "winapi" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ - "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", ] [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.2" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi", ] [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "wincolor" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[metadata] -"checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d" -"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" -"checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee" -"checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" -"checksum ascii-canvas 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8eb72df928aafb99fe5d37b383f2fe25bd2a765e3e5f7c365916b6f2463a29" -"checksum atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90" -"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" -"checksum backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)" = "924c76597f0d9ca25d762c25a4d369d51267536465dc5064bdf0eb073ed477ea" -"checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491" -"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" -"checksum bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e84c238982c4b1e1ee668d136c510c67a13465279c0cb367ea6baf6310620a80" -"checksum bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f59bbe95d4e52a6398ec21238d31577f2b28a9d86807f06ca59d191d8440d0bb" -"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" -"checksum blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b83b7baab1e671718d78204225800d6b170e648188ac7dc992e9d6bddf87d0c0" -"checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -"checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -"checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" -"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" -"checksum cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)" = "f52a465a666ca3d838ebbf08b241383421412fe7ebb463527bba275526d89f76" -"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" -"checksum chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "31850b4a4d6bae316f7a09e691c944c28299298837edc0a03f755618c23cbc01" -"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" -"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -"checksum constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "995a44c877f9212528ccc74b21a232f66ad69001e40ede5bcee2ac9ef2657120" -"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6" -"checksum dbus 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "48b5f0f36f1eebe901b0e6bee369a77ed3396334bf3f09abd46454a576f71819" -"checksum diff 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" -"checksum digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -"checksum dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901" -"checksum docopt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7f525a586d310c87df72ebcd98009e57f1cc030c8c268305287a476beb653969" -"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" -"checksum ena 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8944dc8fa28ce4a38f778bd46bf7d923fe73eed5a439398507246c8e017e6f36" -"checksum env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" -"checksum failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9" -"checksum failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08" -"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" -"checksum fixedbitset 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33" -"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" -"checksum generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" -"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" -"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" -"checksum itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" -"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f" -"checksum lalrpop 0.17.2 (registry+https://github.com/rust-lang/crates.io-index)" = "64dc3698e75d452867d9bd86f4a723f452ce9d01fe1d55990b79f0c790aa67db" -"checksum lalrpop-util 0.17.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c277d18683b36349ab5cd030158b54856fca6bb2d5dc5263b06288f486958b7c" -"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -"checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558" -"checksum libdbus-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc12a3bc971424edbbf7edaf6e5740483444db63aa8e23d3751ff12a30f306f0" -"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" -"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e" -"checksum new_debug_unreachable 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" -"checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09" -"checksum num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c81ffc11c212fa327657cb19dd85eb7419e163b5b076bede2bdb5c974c07e4" -"checksum opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" -"checksum ordermap 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a86ed3f5f244b372d6b1a00b72ef7f8876d0bc6a78a4c9985c53614041512063" -"checksum petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3659d1ee90221741f65dd128d9998311b0e40c5d3c23a62445938214abce4f" -"checksum phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" -"checksum phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" -"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" -"checksum precomputed-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" -"checksum pretty_env_logger 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "717ee476b1690853d222af4634056d830b5197ffd747726a9a1eee6da9f49074" -"checksum proc-macro-error 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "53c98547ceaea14eeb26fcadf51dc70d01a2479a7839170eae133721105e4428" -"checksum proc-macro-error-attr 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c2bf5d493cf5d3e296beccfd61794e445e830dfc8070a9c248ad3ee071392c6c" -"checksum proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0319972dcae462681daf4da1adeeaa066e3ebd29c69be96c6abb1259d2ee2bcc" -"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" -"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe" -"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" -"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" -"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" -"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" -"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" -"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" -"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" -"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" -"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" -"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" -"checksum redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ecedbca3bf205f8d8f5c2b44d83cd0690e39ee84b951ed649e9f1841132b66d" -"checksum regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc220bd33bdce8f093101afe22a037b8eb0e5af33592e6a9caafff0d4cb81cbd" -"checksum regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716" -"checksum rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ca4eaef519b494d1f2848fc602d18816fed808a981aedf4f1f00ceb7c9d32cf" -"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" -"checksum rustversion 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3a0538bd897e17257b0128d2fd95c2ed6df939374073a36166051a79e2eb7986" -"checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8" -"checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449" -"checksum serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64" -"checksum serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)" = "48c575e0cc52bdd09b47f330f646cf59afc586e9c4e3ccd6fc1f625b8ea1dad7" -"checksum sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b4d8bfd0e469f417657573d8451fb33d16cfe0989359b93baf3a1ffc639543d" -"checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" -"checksum string_cache 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "89c058a82f9fd69b1becf8c274f412281038877c553182f1d02eb027045a2d67" -"checksum string_cache_codegen 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0f45ed1b65bf9a4bf2f7b7dc59212d1926e9eaf00fa998988e420fd124467c6" -"checksum string_cache_shared 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc" -"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" -"checksum strsim 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" -"checksum structopt 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "884ae79d6aad1e738f4a70dff314203fd498490a63ebc4d03ea83323c40b7b72" -"checksum structopt-derive 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0a97f829a34a0a9d5b353a881025a23b8c9fd09d46be6045df6b22920dbd7a93" -"checksum syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1e4ff033220a41d1a57d8125eab57bf5263783dfdcc18688b1dacc6ce9651ef8" -"checksum syn-mid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9fd3937748a7eccff61ba5b90af1a20dbf610858923a9192ea0ecb0cb77db1d0" -"checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" -"checksum term 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42" -"checksum termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "96d6098003bde162e4277c70665bd87c326f5a0c3f3fbfb285787fa482d54e6e" -"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" -"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" -"checksum typenum 1.11.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6d2783fe2d6b8c1101136184eb41be8b1ad379e4657050b8aaff0c79ee7575f9" -"checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" -"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" -"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" -"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" -"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" -"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" -"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" -"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -"checksum wincolor 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "96f5016b18804d24db43cebf3c77269e7569b8954a8464501c216cc5e070eaa9" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/Cargo.toml b/Cargo.toml index 54ff3b0..5871309 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,21 +8,19 @@ description = "A command-line tool to manipulate PulseAudio's equalizers" edition = "2018" [features] -default = ["pa-eq", "pa-effects"] +default = ["pa-effects"] -pa-eq = ["dbus"] pa-effects = ["serde_json"] [dependencies] -dbus = { version = "0.6", optional = true } failure = "0.1" -lalrpop-util = "0.17" +lalrpop-util = "0.19" log = "0.4" -pretty_env_logger = "0.3" +pretty_env_logger = "0.4" regex = "1" serde_json = { version = "1", optional = true } structopt = "0.3" [build-dependencies] -lalrpop = "0.17" +lalrpop = "0.19" structopt = "0.3" diff --git a/build.rs b/build.rs index 14d9a03..2de8ee3 100644 --- a/build.rs +++ b/build.rs @@ -1,5 +1,3 @@ -extern crate lalrpop; - #[macro_use] extern crate structopt; @@ -13,7 +11,10 @@ use std::env; mod cli; fn main() { - lalrpop::process_root().unwrap(); + lalrpop::Configuration::new() + .use_cargo_dir_conventions() + .process() + .unwrap(); let outdir = env::var_os("OUT_DIR").expect("OUT_DIR environment variable not defined"); diff --git a/derivation.nix b/derivation.nix index 394b1bb..738d088 100644 --- a/derivation.nix +++ b/derivation.nix @@ -1,19 +1,19 @@ -{ stdenv, rustPlatform, dbus, pkgconfig, ... }: +{ stdenv, rustPlatform, dbus, installShellFiles, ... }: rustPlatform.buildRustPackage rec { name = "set_eq-${version}"; version = "0.1.0"; - buildInputs = [ dbus pkgconfig ]; + nativeBuildInputs = [ installShellFiles ]; + buildInputs = [ dbus ]; src = ./.; - cargoSha256 = "094jq6mlhdgc204xjrp233dckvwmmpbivr59jcpfrl7shchclrd2"; + cargoSha256 = "0639d4b5f3vxljinm59vh7kfvqqm07iah90gqb10l91xpc9lj2b5"; - preFixup = '' - mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions} - cp target/release/build/set_eq-*/out/set_eq.bash "$out/share/bash-completion/completions/" - cp target/release/build/set_eq-*/out/set_eq.fish "$out/share/fish/vendor_completions.d/" - cp target/release/build/set_eq-*/out/_set_eq "$out/share/zsh/site-functions/" + postInstall = '' + installShellCompletion --bash target/release/build/set_eq-*/out/set_eq.bash + installShellCompletion --fish target/release/build/set_eq-*/out/set_eq.fish + installShellCompletion --zsh target/release/build/set_eq-*/out/_set_eq ''; meta = with stdenv.lib; { diff --git a/spec.json b/spec.json index cf65cf5..1294be4 100644 --- a/spec.json +++ b/spec.json @@ -11,6 +11,6 @@ "keepnr": 3, "inputs": { "src": { "type": "git", "value": "https://git.huh.gdn/set_eq/ master", "emailresponsible": false }, - "nixpkgs": { "type": "git", "value": "https://github.com/nixos/nixpkgs-channels nixos-19.03", "emailresponsible": false } + "nixpkgs": { "type": "git", "value": "https://github.com/nixos/nixpkgs-channels nixos-20.09", "emailresponsible": false } } } diff --git a/spec.nix b/spec.nix index 84df6d3..290717f 100644 --- a/spec.nix +++ b/spec.nix @@ -24,7 +24,7 @@ in { "keepnr": 10, "inputs": { "src": { "type": "git", "value": "https://git.huh.gdn/set_eq/ master", "emailresponsible": true }, - "nixpkgs": { "type": "git", "value": "https://github.com/nixos/nixpkgs-channels nixos-19.03", "emailresponsible": false } + "nixpkgs": { "type": "git", "value": "https://github.com/nixos/nixpkgs-channels nixos-20.09", "emailresponsible": false } } } } diff --git a/src/main.rs b/src/main.rs index 062a77c..7a0d7c1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -20,8 +20,6 @@ mod cli; mod parsing; mod utils; -#[cfg(feature = "pa-eq")] -mod pa_eq; #[cfg(feature = "pa-effects")] mod pa_effects; @@ -37,24 +35,6 @@ pub struct Filter { coefficients: Vec, } -impl Filter { - fn pad(self, filter_rate: u32) -> Self { - Filter { - preamp: self.preamp, - frequencies: vec![0u32] - .into_iter() - .chain(self.frequencies.into_iter()) - .chain(vec![filter_rate / 2u32]) - .collect(), - coefficients: vec![1f64] - .into_iter() - .chain(self.coefficients.into_iter()) - .chain(vec![1f64]) - .collect(), - } - } -} - fn main() { match start() { Ok(()) => (), diff --git a/src/pa_eq/dbus_api/equalizing_manager.rs b/src/pa_eq/dbus_api/equalizing_manager.rs deleted file mode 100644 index a9eb7bc..0000000 --- a/src/pa_eq/dbus_api/equalizing_manager.rs +++ /dev/null @@ -1,291 +0,0 @@ -// This code was autogenerated with dbus-codegen-rust, see https://github.com/diwic/dbus-rs - -#![allow(dead_code)] -use dbus as dbus; -use dbus::arg; -use dbus::tree; - -pub trait OrgPulseAudioExtEqualizing1Manager { - type Err; - fn remove_profile(&self, name: &str) -> Result<(), Self::Err>; - fn get_interface_revision(&self) -> Result; - fn get_equalized_sinks(&self) -> Result>, Self::Err>; - fn get_profiles(&self) -> Result, Self::Err>; -} - -impl<'a, C: ::std::ops::Deref> OrgPulseAudioExtEqualizing1Manager for dbus::ConnPath<'a, C> { - type Err = dbus::Error; - - fn remove_profile(&self, name: &str) -> Result<(), Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.PulseAudio.Ext.Equalizing1.Manager".into(), &"RemoveProfile".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(name); - })); - r#try!(m.as_result()); - Ok(()) - } - - fn get_interface_revision(&self) -> Result { - ::get(&self, "org.PulseAudio.Ext.Equalizing1.Manager", "InterfaceRevision") - } - - fn get_equalized_sinks(&self) -> Result>, Self::Err> { - ::get(&self, "org.PulseAudio.Ext.Equalizing1.Manager", "EqualizedSinks") - } - - fn get_profiles(&self) -> Result, Self::Err> { - ::get(&self, "org.PulseAudio.Ext.Equalizing1.Manager", "Profiles") - } -} - -pub fn org_pulse_audio_ext_equalizing1_manager_server(factory: &tree::Factory, D>, data: D::Interface, f: F) -> tree::Interface, D> -where - D: tree::DataType, - D::Method: Default, - D::Property: Default, - T: OrgPulseAudioExtEqualizing1Manager, - F: 'static + for <'z> Fn(& 'z tree::MethodInfo<'_, tree::MTFn, D>) -> & 'z T, -{ - let i = factory.interface("org.PulseAudio.Ext.Equalizing1.Manager", data); - let f = ::std::sync::Arc::new(f); - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let name: &str = r#try!(i.read()); - let d = fclone(minfo); - r#try!(d.remove_profile(name)); - let rm = minfo.msg.method_return(); - Ok(vec!(rm)) - }; - let m = factory.method("RemoveProfile", Default::default(), h); - let m = m.in_arg(("name", "s")); - let i = i.add_m(m); - - let p = factory.property::("InterfaceRevision", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_interface_revision())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::>, _>("EqualizedSinks", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_equalized_sinks())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::, _>("Profiles", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_profiles())); - Ok(()) - }); - let i = i.add_p(p); - i -} - -#[derive(Debug, Default)] -pub struct OrgPulseAudioExtEqualizing1ManagerSinkAdded { - pub sink: dbus::Path<'static>, -} - -impl dbus::SignalArgs for OrgPulseAudioExtEqualizing1ManagerSinkAdded { - const NAME: &'static str = "SinkAdded"; - const INTERFACE: &'static str = "org.PulseAudio.Ext.Equalizing1.Manager"; - fn append(&self, i: &mut arg::IterAppend<'_>) { - (&self.sink as &dyn arg::RefArg).append(i); - } - fn get(&mut self, i: &mut arg::Iter<'_>) -> Result<(), arg::TypeMismatchError> { - self.sink = r#try!(i.read()); - Ok(()) - } -} - -#[derive(Debug, Default)] -pub struct OrgPulseAudioExtEqualizing1ManagerSinkRemoved { - pub sink: dbus::Path<'static>, -} - -impl dbus::SignalArgs for OrgPulseAudioExtEqualizing1ManagerSinkRemoved { - const NAME: &'static str = "SinkRemoved"; - const INTERFACE: &'static str = "org.PulseAudio.Ext.Equalizing1.Manager"; - fn append(&self, i: &mut arg::IterAppend<'_>) { - (&self.sink as &dyn arg::RefArg).append(i); - } - fn get(&mut self, i: &mut arg::Iter<'_>) -> Result<(), arg::TypeMismatchError> { - self.sink = r#try!(i.read()); - Ok(()) - } -} - -#[derive(Debug, Default)] -pub struct OrgPulseAudioExtEqualizing1ManagerProfilesChanged { -} - -impl dbus::SignalArgs for OrgPulseAudioExtEqualizing1ManagerProfilesChanged { - const NAME: &'static str = "ProfilesChanged"; - const INTERFACE: &'static str = "org.PulseAudio.Ext.Equalizing1.Manager"; - fn append(&self, _: &mut arg::IterAppend<'_>) { - } - fn get(&mut self, _: &mut arg::Iter<'_>) -> Result<(), arg::TypeMismatchError> { - Ok(()) - } -} - -pub trait OrgFreedesktopDBusIntrospectable { - type Err; - fn introspect(&self) -> Result; -} - -impl<'a, C: ::std::ops::Deref> OrgFreedesktopDBusIntrospectable for dbus::ConnPath<'a, C> { - type Err = dbus::Error; - - fn introspect(&self) -> Result { - let mut m = r#try!(self.method_call_with_args(&"org.freedesktop.DBus.Introspectable".into(), &"Introspect".into(), |_| { - })); - r#try!(m.as_result()); - let mut i = m.iter_init(); - let data: String = r#try!(i.read()); - Ok(data) - } -} - -pub fn org_freedesktop_dbus_introspectable_server(factory: &tree::Factory, D>, data: D::Interface, f: F) -> tree::Interface, D> -where - D: tree::DataType, - D::Method: Default, - T: OrgFreedesktopDBusIntrospectable, - F: 'static + for <'z> Fn(& 'z tree::MethodInfo<'_, tree::MTFn, D>) -> & 'z T, -{ - let i = factory.interface("org.freedesktop.DBus.Introspectable", data); - let f = ::std::sync::Arc::new(f); - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let d = fclone(minfo); - let data = r#try!(d.introspect()); - let rm = minfo.msg.method_return(); - let rm = rm.append1(data); - Ok(vec!(rm)) - }; - let m = factory.method("Introspect", Default::default(), h); - let m = m.out_arg(("data", "s")); - let i = i.add_m(m); - i -} - -pub trait OrgFreedesktopDBusProperties { - type Err; - fn get(&self, interface_name: &str, property_name: &str) -> Result>, Self::Err>; - fn set(&self, interface_name: &str, property_name: &str, value: arg::Variant>) -> Result<(), Self::Err>; - fn get_all(&self, interface_name: &str) -> Result<::std::collections::HashMap>>, Self::Err>; -} - -impl<'a, C: ::std::ops::Deref> OrgFreedesktopDBusProperties for dbus::ConnPath<'a, C> { - type Err = dbus::Error; - - fn get(&self, interface_name: &str, property_name: &str) -> Result>, Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.freedesktop.DBus.Properties".into(), &"Get".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(interface_name); - i.append(property_name); - })); - r#try!(m.as_result()); - let mut i = m.iter_init(); - let value: arg::Variant> = r#try!(i.read()); - Ok(value) - } - - fn set(&self, interface_name: &str, property_name: &str, value: arg::Variant>) -> Result<(), Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.freedesktop.DBus.Properties".into(), &"Set".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(interface_name); - i.append(property_name); - i.append(value); - })); - r#try!(m.as_result()); - Ok(()) - } - - fn get_all(&self, interface_name: &str) -> Result<::std::collections::HashMap>>, Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.freedesktop.DBus.Properties".into(), &"GetAll".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(interface_name); - })); - r#try!(m.as_result()); - let mut i = m.iter_init(); - let props: ::std::collections::HashMap>> = r#try!(i.read()); - Ok(props) - } -} - -pub fn org_freedesktop_dbus_properties_server(factory: &tree::Factory, D>, data: D::Interface, f: F) -> tree::Interface, D> -where - D: tree::DataType, - D::Method: Default, - T: OrgFreedesktopDBusProperties, - F: 'static + for <'z> Fn(& 'z tree::MethodInfo<'_, tree::MTFn, D>) -> & 'z T, -{ - let i = factory.interface("org.freedesktop.DBus.Properties", data); - let f = ::std::sync::Arc::new(f); - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let interface_name: &str = r#try!(i.read()); - let property_name: &str = r#try!(i.read()); - let d = fclone(minfo); - let value = r#try!(d.get(interface_name, property_name)); - let rm = minfo.msg.method_return(); - let rm = rm.append1(value); - Ok(vec!(rm)) - }; - let m = factory.method("Get", Default::default(), h); - let m = m.in_arg(("interface_name", "s")); - let m = m.in_arg(("property_name", "s")); - let m = m.out_arg(("value", "v")); - let i = i.add_m(m); - - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let interface_name: &str = r#try!(i.read()); - let property_name: &str = r#try!(i.read()); - let value: arg::Variant> = r#try!(i.read()); - let d = fclone(minfo); - r#try!(d.set(interface_name, property_name, value)); - let rm = minfo.msg.method_return(); - Ok(vec!(rm)) - }; - let m = factory.method("Set", Default::default(), h); - let m = m.in_arg(("interface_name", "s")); - let m = m.in_arg(("property_name", "s")); - let m = m.in_arg(("value", "v")); - let i = i.add_m(m); - - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let interface_name: &str = r#try!(i.read()); - let d = fclone(minfo); - let props = r#try!(d.get_all(interface_name)); - let rm = minfo.msg.method_return(); - let rm = rm.append1(props); - Ok(vec!(rm)) - }; - let m = factory.method("GetAll", Default::default(), h); - let m = m.in_arg(("interface_name", "s")); - let m = m.out_arg(("props", "a{sv}")); - let i = i.add_m(m); - i -} diff --git a/src/pa_eq/dbus_api/mod.rs b/src/pa_eq/dbus_api/mod.rs deleted file mode 100644 index 79dd38a..0000000 --- a/src/pa_eq/dbus_api/mod.rs +++ /dev/null @@ -1,6 +0,0 @@ -#[allow(clippy::all)] -pub mod equalizing_manager; -#[allow(clippy::all)] -pub mod server_lookup; -#[allow(clippy::all)] -pub mod sink; diff --git a/src/pa_eq/dbus_api/server_lookup.rs b/src/pa_eq/dbus_api/server_lookup.rs deleted file mode 100644 index c959df8..0000000 --- a/src/pa_eq/dbus_api/server_lookup.rs +++ /dev/null @@ -1,188 +0,0 @@ -// This code was autogenerated with dbus-codegen-rust, see https://github.com/diwic/dbus-rs - -#![allow(dead_code)] -use dbus as dbus; -use dbus::arg; -use dbus::tree; - -pub trait OrgPulseAudioServerLookup1 { - type Err; - fn get_address(&self) -> Result; -} - -impl<'a, C: ::std::ops::Deref> OrgPulseAudioServerLookup1 for dbus::ConnPath<'a, C> { - type Err = dbus::Error; - - fn get_address(&self) -> Result { - ::get(&self, "org.PulseAudio.ServerLookup1", "Address") - } -} - -pub fn org_pulse_audio_server_lookup1_server(factory: &tree::Factory, D>, data: D::Interface, f: F) -> tree::Interface, D> -where - D: tree::DataType, - D::Method: Default, - D::Property: Default, - T: OrgPulseAudioServerLookup1, - F: 'static + for <'z> Fn(& 'z tree::MethodInfo<'_, tree::MTFn, D>) -> & 'z T, -{ - let i = factory.interface("org.PulseAudio.ServerLookup1", data); - let f = ::std::sync::Arc::new(f); - let p = factory.property::<&str, _>("Address", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_address())); - Ok(()) - }); - let i = i.add_p(p); - i -} - -pub trait OrgFreedesktopDBusIntrospectable { - type Err; - fn introspect(&self) -> Result; -} - -impl<'a, C: ::std::ops::Deref> OrgFreedesktopDBusIntrospectable for dbus::ConnPath<'a, C> { - type Err = dbus::Error; - - fn introspect(&self) -> Result { - let mut m = r#try!(self.method_call_with_args(&"org.freedesktop.DBus.Introspectable".into(), &"Introspect".into(), |_| { - })); - r#try!(m.as_result()); - let mut i = m.iter_init(); - let data: String = r#try!(i.read()); - Ok(data) - } -} - -pub fn org_freedesktop_dbus_introspectable_server(factory: &tree::Factory, D>, data: D::Interface, f: F) -> tree::Interface, D> -where - D: tree::DataType, - D::Method: Default, - T: OrgFreedesktopDBusIntrospectable, - F: 'static + for <'z> Fn(& 'z tree::MethodInfo<'_, tree::MTFn, D>) -> & 'z T, -{ - let i = factory.interface("org.freedesktop.DBus.Introspectable", data); - let f = ::std::sync::Arc::new(f); - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let d = fclone(minfo); - let data = r#try!(d.introspect()); - let rm = minfo.msg.method_return(); - let rm = rm.append1(data); - Ok(vec!(rm)) - }; - let m = factory.method("Introspect", Default::default(), h); - let m = m.out_arg(("data", "s")); - let i = i.add_m(m); - i -} - -pub trait OrgFreedesktopDBusProperties { - type Err; - fn get(&self, interface_name: &str, property_name: &str) -> Result>, Self::Err>; - fn set(&self, interface_name: &str, property_name: &str, value: arg::Variant>) -> Result<(), Self::Err>; - fn get_all(&self, interface_name: &str) -> Result<::std::collections::HashMap>>, Self::Err>; -} - -impl<'a, C: ::std::ops::Deref> OrgFreedesktopDBusProperties for dbus::ConnPath<'a, C> { - type Err = dbus::Error; - - fn get(&self, interface_name: &str, property_name: &str) -> Result>, Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.freedesktop.DBus.Properties".into(), &"Get".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(interface_name); - i.append(property_name); - })); - r#try!(m.as_result()); - let mut i = m.iter_init(); - let value: arg::Variant> = r#try!(i.read()); - Ok(value) - } - - fn set(&self, interface_name: &str, property_name: &str, value: arg::Variant>) -> Result<(), Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.freedesktop.DBus.Properties".into(), &"Set".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(interface_name); - i.append(property_name); - i.append(value); - })); - r#try!(m.as_result()); - Ok(()) - } - - fn get_all(&self, interface_name: &str) -> Result<::std::collections::HashMap>>, Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.freedesktop.DBus.Properties".into(), &"GetAll".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(interface_name); - })); - r#try!(m.as_result()); - let mut i = m.iter_init(); - let props: ::std::collections::HashMap>> = r#try!(i.read()); - Ok(props) - } -} - -pub fn org_freedesktop_dbus_properties_server(factory: &tree::Factory, D>, data: D::Interface, f: F) -> tree::Interface, D> -where - D: tree::DataType, - D::Method: Default, - T: OrgFreedesktopDBusProperties, - F: 'static + for <'z> Fn(& 'z tree::MethodInfo<'_, tree::MTFn, D>) -> & 'z T, -{ - let i = factory.interface("org.freedesktop.DBus.Properties", data); - let f = ::std::sync::Arc::new(f); - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let interface_name: &str = r#try!(i.read()); - let property_name: &str = r#try!(i.read()); - let d = fclone(minfo); - let value = r#try!(d.get(interface_name, property_name)); - let rm = minfo.msg.method_return(); - let rm = rm.append1(value); - Ok(vec!(rm)) - }; - let m = factory.method("Get", Default::default(), h); - let m = m.in_arg(("interface_name", "s")); - let m = m.in_arg(("property_name", "s")); - let m = m.out_arg(("value", "v")); - let i = i.add_m(m); - - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let interface_name: &str = r#try!(i.read()); - let property_name: &str = r#try!(i.read()); - let value: arg::Variant> = r#try!(i.read()); - let d = fclone(minfo); - r#try!(d.set(interface_name, property_name, value)); - let rm = minfo.msg.method_return(); - Ok(vec!(rm)) - }; - let m = factory.method("Set", Default::default(), h); - let m = m.in_arg(("interface_name", "s")); - let m = m.in_arg(("property_name", "s")); - let m = m.in_arg(("value", "v")); - let i = i.add_m(m); - - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let interface_name: &str = r#try!(i.read()); - let d = fclone(minfo); - let props = r#try!(d.get_all(interface_name)); - let rm = minfo.msg.method_return(); - let rm = rm.append1(props); - Ok(vec!(rm)) - }; - let m = factory.method("GetAll", Default::default(), h); - let m = m.in_arg(("interface_name", "s")); - let m = m.out_arg(("props", "a{sv}")); - let i = i.add_m(m); - i -} diff --git a/src/pa_eq/dbus_api/sink.rs b/src/pa_eq/dbus_api/sink.rs deleted file mode 100644 index d902e64..0000000 --- a/src/pa_eq/dbus_api/sink.rs +++ /dev/null @@ -1,1128 +0,0 @@ -// This code was autogenerated with dbus-codegen-rust, see https://github.com/diwic/dbus-rs - -#![allow(dead_code)] -use dbus as dbus; -use dbus::arg; -use dbus::tree; - -pub trait OrgPulseAudioExtEqualizing1Equalizer { - type Err; - fn filter_at_points(&self, channel: u32, xs: Vec) -> Result<(Vec, f64), Self::Err>; - fn seed_filter(&self, channel: u32, xs: Vec, ys: Vec, preamp: f64) -> Result<(), Self::Err>; - fn save_profile(&self, channel: u32, name: &str) -> Result<(), Self::Err>; - fn load_profile(&self, channel: u32, name: &str) -> Result<(), Self::Err>; - fn set_filter(&self, channel: u32, ys: Vec, preamp: f64) -> Result<(), Self::Err>; - fn get_filter(&self, channel: u32) -> Result<(Vec, f64), Self::Err>; - fn save_state(&self) -> Result<(), Self::Err>; - fn base_profile(&self, channel: u32) -> Result; - fn get_interface_revision(&self) -> Result; - fn get_sample_rate(&self) -> Result; - fn get_filter_sample_rate(&self) -> Result; - fn get_nfilter_coefficients(&self) -> Result; - fn get_nchannels(&self) -> Result; -} - -impl<'a, C: ::std::ops::Deref> OrgPulseAudioExtEqualizing1Equalizer for dbus::ConnPath<'a, C> { - type Err = dbus::Error; - - fn filter_at_points(&self, channel: u32, xs: Vec) -> Result<(Vec, f64), Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.PulseAudio.Ext.Equalizing1.Equalizer".into(), &"FilterAtPoints".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(channel); - i.append(xs); - })); - r#try!(m.as_result()); - let mut i = m.iter_init(); - let ys: Vec = r#try!(i.read()); - let preamp: f64 = r#try!(i.read()); - Ok((ys, preamp)) - } - - fn seed_filter(&self, channel: u32, xs: Vec, ys: Vec, preamp: f64) -> Result<(), Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.PulseAudio.Ext.Equalizing1.Equalizer".into(), &"SeedFilter".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(channel); - i.append(xs); - i.append(ys); - i.append(preamp); - })); - r#try!(m.as_result()); - Ok(()) - } - - fn save_profile(&self, channel: u32, name: &str) -> Result<(), Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.PulseAudio.Ext.Equalizing1.Equalizer".into(), &"SaveProfile".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(channel); - i.append(name); - })); - r#try!(m.as_result()); - Ok(()) - } - - fn load_profile(&self, channel: u32, name: &str) -> Result<(), Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.PulseAudio.Ext.Equalizing1.Equalizer".into(), &"LoadProfile".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(channel); - i.append(name); - })); - r#try!(m.as_result()); - Ok(()) - } - - fn set_filter(&self, channel: u32, ys: Vec, preamp: f64) -> Result<(), Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.PulseAudio.Ext.Equalizing1.Equalizer".into(), &"SetFilter".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(channel); - i.append(ys); - i.append(preamp); - })); - r#try!(m.as_result()); - Ok(()) - } - - fn get_filter(&self, channel: u32) -> Result<(Vec, f64), Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.PulseAudio.Ext.Equalizing1.Equalizer".into(), &"GetFilter".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(channel); - })); - r#try!(m.as_result()); - let mut i = m.iter_init(); - let ys: Vec = r#try!(i.read()); - let preamp: f64 = r#try!(i.read()); - Ok((ys, preamp)) - } - - fn save_state(&self) -> Result<(), Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.PulseAudio.Ext.Equalizing1.Equalizer".into(), &"SaveState".into(), |_| { - })); - r#try!(m.as_result()); - Ok(()) - } - - fn base_profile(&self, channel: u32) -> Result { - let mut m = r#try!(self.method_call_with_args(&"org.PulseAudio.Ext.Equalizing1.Equalizer".into(), &"BaseProfile".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(channel); - })); - r#try!(m.as_result()); - let mut i = m.iter_init(); - let name: String = r#try!(i.read()); - Ok(name) - } - - fn get_interface_revision(&self) -> Result { - ::get(&self, "org.PulseAudio.Ext.Equalizing1.Equalizer", "InterfaceRevision") - } - - fn get_sample_rate(&self) -> Result { - ::get(&self, "org.PulseAudio.Ext.Equalizing1.Equalizer", "SampleRate") - } - - fn get_filter_sample_rate(&self) -> Result { - ::get(&self, "org.PulseAudio.Ext.Equalizing1.Equalizer", "FilterSampleRate") - } - - fn get_nfilter_coefficients(&self) -> Result { - ::get(&self, "org.PulseAudio.Ext.Equalizing1.Equalizer", "NFilterCoefficients") - } - - fn get_nchannels(&self) -> Result { - ::get(&self, "org.PulseAudio.Ext.Equalizing1.Equalizer", "NChannels") - } -} - -pub fn org_pulse_audio_ext_equalizing1_equalizer_server(factory: &tree::Factory, D>, data: D::Interface, f: F) -> tree::Interface, D> -where - D: tree::DataType, - D::Method: Default, - D::Property: Default, - T: OrgPulseAudioExtEqualizing1Equalizer, - F: 'static + for <'z> Fn(& 'z tree::MethodInfo<'_, tree::MTFn, D>) -> & 'z T, -{ - let i = factory.interface("org.PulseAudio.Ext.Equalizing1.Equalizer", data); - let f = ::std::sync::Arc::new(f); - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let channel: u32 = r#try!(i.read()); - let xs: Vec = r#try!(i.read()); - let d = fclone(minfo); - let (ys, preamp) = r#try!(d.filter_at_points(channel, xs)); - let rm = minfo.msg.method_return(); - let rm = rm.append1(ys); - let rm = rm.append1(preamp); - Ok(vec!(rm)) - }; - let m = factory.method("FilterAtPoints", Default::default(), h); - let m = m.in_arg(("channel", "u")); - let m = m.in_arg(("xs", "au")); - let m = m.out_arg(("ys", "ad")); - let m = m.out_arg(("preamp", "d")); - let i = i.add_m(m); - - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let channel: u32 = r#try!(i.read()); - let xs: Vec = r#try!(i.read()); - let ys: Vec = r#try!(i.read()); - let preamp: f64 = r#try!(i.read()); - let d = fclone(minfo); - r#try!(d.seed_filter(channel, xs, ys, preamp)); - let rm = minfo.msg.method_return(); - Ok(vec!(rm)) - }; - let m = factory.method("SeedFilter", Default::default(), h); - let m = m.in_arg(("channel", "u")); - let m = m.in_arg(("xs", "au")); - let m = m.in_arg(("ys", "ad")); - let m = m.in_arg(("preamp", "d")); - let i = i.add_m(m); - - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let channel: u32 = r#try!(i.read()); - let name: &str = r#try!(i.read()); - let d = fclone(minfo); - r#try!(d.save_profile(channel, name)); - let rm = minfo.msg.method_return(); - Ok(vec!(rm)) - }; - let m = factory.method("SaveProfile", Default::default(), h); - let m = m.in_arg(("channel", "u")); - let m = m.in_arg(("name", "s")); - let i = i.add_m(m); - - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let channel: u32 = r#try!(i.read()); - let name: &str = r#try!(i.read()); - let d = fclone(minfo); - r#try!(d.load_profile(channel, name)); - let rm = minfo.msg.method_return(); - Ok(vec!(rm)) - }; - let m = factory.method("LoadProfile", Default::default(), h); - let m = m.in_arg(("channel", "u")); - let m = m.in_arg(("name", "s")); - let i = i.add_m(m); - - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let channel: u32 = r#try!(i.read()); - let ys: Vec = r#try!(i.read()); - let preamp: f64 = r#try!(i.read()); - let d = fclone(minfo); - r#try!(d.set_filter(channel, ys, preamp)); - let rm = minfo.msg.method_return(); - Ok(vec!(rm)) - }; - let m = factory.method("SetFilter", Default::default(), h); - let m = m.in_arg(("channel", "u")); - let m = m.in_arg(("ys", "ad")); - let m = m.in_arg(("preamp", "d")); - let i = i.add_m(m); - - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let channel: u32 = r#try!(i.read()); - let d = fclone(minfo); - let (ys, preamp) = r#try!(d.get_filter(channel)); - let rm = minfo.msg.method_return(); - let rm = rm.append1(ys); - let rm = rm.append1(preamp); - Ok(vec!(rm)) - }; - let m = factory.method("GetFilter", Default::default(), h); - let m = m.in_arg(("channel", "u")); - let m = m.out_arg(("ys", "ad")); - let m = m.out_arg(("preamp", "d")); - let i = i.add_m(m); - - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let d = fclone(minfo); - r#try!(d.save_state()); - let rm = minfo.msg.method_return(); - Ok(vec!(rm)) - }; - let m = factory.method("SaveState", Default::default(), h); - let i = i.add_m(m); - - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let channel: u32 = r#try!(i.read()); - let d = fclone(minfo); - let name = r#try!(d.base_profile(channel)); - let rm = minfo.msg.method_return(); - let rm = rm.append1(name); - Ok(vec!(rm)) - }; - let m = factory.method("BaseProfile", Default::default(), h); - let m = m.in_arg(("channel", "u")); - let m = m.out_arg(("name", "s")); - let i = i.add_m(m); - - let p = factory.property::("InterfaceRevision", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_interface_revision())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("SampleRate", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_sample_rate())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("FilterSampleRate", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_filter_sample_rate())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("NFilterCoefficients", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_nfilter_coefficients())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("NChannels", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_nchannels())); - Ok(()) - }); - let i = i.add_p(p); - i -} - -#[derive(Debug, Default)] -pub struct OrgPulseAudioExtEqualizing1EqualizerFilterChanged { -} - -impl dbus::SignalArgs for OrgPulseAudioExtEqualizing1EqualizerFilterChanged { - const NAME: &'static str = "FilterChanged"; - const INTERFACE: &'static str = "org.PulseAudio.Ext.Equalizing1.Equalizer"; - fn append(&self, _: &mut arg::IterAppend<'_>) { - } - fn get(&mut self, _: &mut arg::Iter<'_>) -> Result<(), arg::TypeMismatchError> { - Ok(()) - } -} - -#[derive(Debug, Default)] -pub struct OrgPulseAudioExtEqualizing1EqualizerSinkReconfigured { -} - -impl dbus::SignalArgs for OrgPulseAudioExtEqualizing1EqualizerSinkReconfigured { - const NAME: &'static str = "SinkReconfigured"; - const INTERFACE: &'static str = "org.PulseAudio.Ext.Equalizing1.Equalizer"; - fn append(&self, _: &mut arg::IterAppend<'_>) { - } - fn get(&mut self, _: &mut arg::Iter<'_>) -> Result<(), arg::TypeMismatchError> { - Ok(()) - } -} - -pub trait OrgPulseAudioCore1Device { - type Err; - fn suspend(&self, suspend: bool) -> Result<(), Self::Err>; - fn get_port_by_name(&self, name: &str) -> Result, Self::Err>; - fn get_index(&self) -> Result; - fn get_name(&self) -> Result; - fn get_driver(&self) -> Result; - fn get_owner_module(&self) -> Result, Self::Err>; - fn get_card(&self) -> Result, Self::Err>; - fn get_sample_format(&self) -> Result; - fn get_sample_rate(&self) -> Result; - fn get_channels(&self) -> Result, Self::Err>; - fn get_volume(&self) -> Result, Self::Err>; - fn set_volume(&self, value: Vec) -> Result<(), Self::Err>; - fn get_has_flat_volume(&self) -> Result; - fn get_has_convertible_to_decibel_volume(&self) -> Result; - fn get_base_volume(&self) -> Result; - fn get_volume_steps(&self) -> Result; - fn get_mute(&self) -> Result; - fn set_mute(&self, value: bool) -> Result<(), Self::Err>; - fn get_has_hardware_volume(&self) -> Result; - fn get_has_hardware_mute(&self) -> Result; - fn get_configured_latency(&self) -> Result; - fn get_has_dynamic_latency(&self) -> Result; - fn get_latency(&self) -> Result; - fn get_is_hardware_device(&self) -> Result; - fn get_is_network_device(&self) -> Result; - fn get_state(&self) -> Result; - fn get_ports(&self) -> Result>, Self::Err>; - fn get_active_port(&self) -> Result, Self::Err>; - fn set_active_port(&self, value: dbus::Path<'static>) -> Result<(), Self::Err>; - fn get_property_list(&self) -> Result<::std::collections::HashMap>, Self::Err>; -} - -impl<'a, C: ::std::ops::Deref> OrgPulseAudioCore1Device for dbus::ConnPath<'a, C> { - type Err = dbus::Error; - - fn suspend(&self, suspend: bool) -> Result<(), Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.PulseAudio.Core1.Device".into(), &"Suspend".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(suspend); - })); - r#try!(m.as_result()); - Ok(()) - } - - fn get_port_by_name(&self, name: &str) -> Result, Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.PulseAudio.Core1.Device".into(), &"GetPortByName".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(name); - })); - r#try!(m.as_result()); - let mut i = m.iter_init(); - let port: dbus::Path<'static> = r#try!(i.read()); - Ok(port) - } - - fn get_index(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "Index") - } - - fn get_name(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "Name") - } - - fn get_driver(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "Driver") - } - - fn get_owner_module(&self) -> Result, Self::Err> { - ::get(&self, "org.PulseAudio.Core1.Device", "OwnerModule") - } - - fn get_card(&self) -> Result, Self::Err> { - ::get(&self, "org.PulseAudio.Core1.Device", "Card") - } - - fn get_sample_format(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "SampleFormat") - } - - fn get_sample_rate(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "SampleRate") - } - - fn get_channels(&self) -> Result, Self::Err> { - ::get(&self, "org.PulseAudio.Core1.Device", "Channels") - } - - fn get_volume(&self) -> Result, Self::Err> { - ::get(&self, "org.PulseAudio.Core1.Device", "Volume") - } - - fn get_has_flat_volume(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "HasFlatVolume") - } - - fn get_has_convertible_to_decibel_volume(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "HasConvertibleToDecibelVolume") - } - - fn get_base_volume(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "BaseVolume") - } - - fn get_volume_steps(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "VolumeSteps") - } - - fn get_mute(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "Mute") - } - - fn get_has_hardware_volume(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "HasHardwareVolume") - } - - fn get_has_hardware_mute(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "HasHardwareMute") - } - - fn get_configured_latency(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "ConfiguredLatency") - } - - fn get_has_dynamic_latency(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "HasDynamicLatency") - } - - fn get_latency(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "Latency") - } - - fn get_is_hardware_device(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "IsHardwareDevice") - } - - fn get_is_network_device(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "IsNetworkDevice") - } - - fn get_state(&self) -> Result { - ::get(&self, "org.PulseAudio.Core1.Device", "State") - } - - fn get_ports(&self) -> Result>, Self::Err> { - ::get(&self, "org.PulseAudio.Core1.Device", "Ports") - } - - fn get_active_port(&self) -> Result, Self::Err> { - ::get(&self, "org.PulseAudio.Core1.Device", "ActivePort") - } - - fn get_property_list(&self) -> Result<::std::collections::HashMap>, Self::Err> { - ::get(&self, "org.PulseAudio.Core1.Device", "PropertyList") - } - - fn set_volume(&self, value: Vec) -> Result<(), Self::Err> { - ::set(&self, "org.PulseAudio.Core1.Device", "Volume", value) - } - - fn set_mute(&self, value: bool) -> Result<(), Self::Err> { - ::set(&self, "org.PulseAudio.Core1.Device", "Mute", value) - } - - fn set_active_port(&self, value: dbus::Path<'static>) -> Result<(), Self::Err> { - ::set(&self, "org.PulseAudio.Core1.Device", "ActivePort", value) - } -} - -pub fn org_pulse_audio_core1_device_server(factory: &tree::Factory, D>, data: D::Interface, f: F) -> tree::Interface, D> -where - D: tree::DataType, - D::Method: Default, - D::Property: Default, - T: OrgPulseAudioCore1Device, - F: 'static + for <'z> Fn(& 'z tree::MethodInfo<'_, tree::MTFn, D>) -> & 'z T, -{ - let i = factory.interface("org.PulseAudio.Core1.Device", data); - let f = ::std::sync::Arc::new(f); - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let suspend: bool = r#try!(i.read()); - let d = fclone(minfo); - r#try!(d.suspend(suspend)); - let rm = minfo.msg.method_return(); - Ok(vec!(rm)) - }; - let m = factory.method("Suspend", Default::default(), h); - let m = m.in_arg(("suspend", "b")); - let i = i.add_m(m); - - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let name: &str = r#try!(i.read()); - let d = fclone(minfo); - let port = r#try!(d.get_port_by_name(name)); - let rm = minfo.msg.method_return(); - let rm = rm.append1(port); - Ok(vec!(rm)) - }; - let m = factory.method("GetPortByName", Default::default(), h); - let m = m.in_arg(("name", "s")); - let m = m.out_arg(("port", "o")); - let i = i.add_m(m); - - let p = factory.property::("Index", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_index())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::<&str, _>("Name", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_name())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::<&str, _>("Driver", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_driver())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::, _>("OwnerModule", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_owner_module())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::, _>("Card", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_card())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("SampleFormat", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_sample_format())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("SampleRate", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_sample_rate())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::, _>("Channels", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_channels())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::, _>("Volume", Default::default()); - let p = p.access(tree::Access::ReadWrite); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_volume())); - Ok(()) - }); - let fclone = f.clone(); - let p = p.on_set(move |iter, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - r#try!(d.set_volume(r#try!(iter.read()))); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("HasFlatVolume", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_has_flat_volume())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("HasConvertibleToDecibelVolume", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_has_convertible_to_decibel_volume())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("BaseVolume", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_base_volume())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("VolumeSteps", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_volume_steps())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("Mute", Default::default()); - let p = p.access(tree::Access::ReadWrite); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_mute())); - Ok(()) - }); - let fclone = f.clone(); - let p = p.on_set(move |iter, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - r#try!(d.set_mute(r#try!(iter.read()))); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("HasHardwareVolume", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_has_hardware_volume())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("HasHardwareMute", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_has_hardware_mute())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("ConfiguredLatency", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_configured_latency())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("HasDynamicLatency", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_has_dynamic_latency())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("Latency", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_latency())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("IsHardwareDevice", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_is_hardware_device())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("IsNetworkDevice", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_is_network_device())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::("State", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_state())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::>, _>("Ports", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_ports())); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::, _>("ActivePort", Default::default()); - let p = p.access(tree::Access::ReadWrite); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_active_port())); - Ok(()) - }); - let fclone = f.clone(); - let p = p.on_set(move |iter, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - r#try!(d.set_active_port(r#try!(iter.read()))); - Ok(()) - }); - let i = i.add_p(p); - - let p = factory.property::<::std::collections::HashMap<&str, Vec>, _>("PropertyList", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_property_list())); - Ok(()) - }); - let i = i.add_p(p); - i -} - -#[derive(Debug, Default)] -pub struct OrgPulseAudioCore1DeviceVolumeUpdated { - pub volume: Vec, -} - -impl dbus::SignalArgs for OrgPulseAudioCore1DeviceVolumeUpdated { - const NAME: &'static str = "VolumeUpdated"; - const INTERFACE: &'static str = "org.PulseAudio.Core1.Device"; - fn append(&self, i: &mut arg::IterAppend<'_>) { - (&self.volume as &dyn arg::RefArg).append(i); - } - fn get(&mut self, i: &mut arg::Iter<'_>) -> Result<(), arg::TypeMismatchError> { - self.volume = r#try!(i.read()); - Ok(()) - } -} - -#[derive(Debug, Default)] -pub struct OrgPulseAudioCore1DeviceMuteUpdated { - pub muted: bool, -} - -impl dbus::SignalArgs for OrgPulseAudioCore1DeviceMuteUpdated { - const NAME: &'static str = "MuteUpdated"; - const INTERFACE: &'static str = "org.PulseAudio.Core1.Device"; - fn append(&self, i: &mut arg::IterAppend<'_>) { - (&self.muted as &dyn arg::RefArg).append(i); - } - fn get(&mut self, i: &mut arg::Iter<'_>) -> Result<(), arg::TypeMismatchError> { - self.muted = r#try!(i.read()); - Ok(()) - } -} - -#[derive(Debug, Default)] -pub struct OrgPulseAudioCore1DeviceStateUpdated { - pub state: u32, -} - -impl dbus::SignalArgs for OrgPulseAudioCore1DeviceStateUpdated { - const NAME: &'static str = "StateUpdated"; - const INTERFACE: &'static str = "org.PulseAudio.Core1.Device"; - fn append(&self, i: &mut arg::IterAppend<'_>) { - (&self.state as &dyn arg::RefArg).append(i); - } - fn get(&mut self, i: &mut arg::Iter<'_>) -> Result<(), arg::TypeMismatchError> { - self.state = r#try!(i.read()); - Ok(()) - } -} - -#[derive(Debug, Default)] -pub struct OrgPulseAudioCore1DeviceActivePortUpdated { - pub port: dbus::Path<'static>, -} - -impl dbus::SignalArgs for OrgPulseAudioCore1DeviceActivePortUpdated { - const NAME: &'static str = "ActivePortUpdated"; - const INTERFACE: &'static str = "org.PulseAudio.Core1.Device"; - fn append(&self, i: &mut arg::IterAppend<'_>) { - (&self.port as &dyn arg::RefArg).append(i); - } - fn get(&mut self, i: &mut arg::Iter<'_>) -> Result<(), arg::TypeMismatchError> { - self.port = r#try!(i.read()); - Ok(()) - } -} - -#[derive(Debug, Default)] -pub struct OrgPulseAudioCore1DevicePropertyListUpdated { - pub property_list: ::std::collections::HashMap>, -} - -impl dbus::SignalArgs for OrgPulseAudioCore1DevicePropertyListUpdated { - const NAME: &'static str = "PropertyListUpdated"; - const INTERFACE: &'static str = "org.PulseAudio.Core1.Device"; - fn append(&self, i: &mut arg::IterAppend<'_>) { - (&self.property_list as &dyn arg::RefArg).append(i); - } - fn get(&mut self, i: &mut arg::Iter<'_>) -> Result<(), arg::TypeMismatchError> { - self.property_list = r#try!(i.read()); - Ok(()) - } -} - -pub trait OrgPulseAudioCore1Sink { - type Err; - fn get_monitor_source(&self) -> Result, Self::Err>; -} - -impl<'a, C: ::std::ops::Deref> OrgPulseAudioCore1Sink for dbus::ConnPath<'a, C> { - type Err = dbus::Error; - - fn get_monitor_source(&self) -> Result, Self::Err> { - ::get(&self, "org.PulseAudio.Core1.Sink", "MonitorSource") - } -} - -pub fn org_pulse_audio_core1_sink_server(factory: &tree::Factory, D>, data: D::Interface, f: F) -> tree::Interface, D> -where - D: tree::DataType, - D::Method: Default, - D::Property: Default, - T: OrgPulseAudioCore1Sink, - F: 'static + for <'z> Fn(& 'z tree::MethodInfo<'_, tree::MTFn, D>) -> & 'z T, -{ - let i = factory.interface("org.PulseAudio.Core1.Sink", data); - let f = ::std::sync::Arc::new(f); - let p = factory.property::, _>("MonitorSource", Default::default()); - let p = p.access(tree::Access::Read); - let fclone = f.clone(); - let p = p.on_get(move |a, pinfo| { - let minfo = pinfo.to_method_info(); - let d = fclone(&minfo); - a.append(r#try!(d.get_monitor_source())); - Ok(()) - }); - let i = i.add_p(p); - i -} - -pub trait OrgFreedesktopDBusIntrospectable { - type Err; - fn introspect(&self) -> Result; -} - -impl<'a, C: ::std::ops::Deref> OrgFreedesktopDBusIntrospectable for dbus::ConnPath<'a, C> { - type Err = dbus::Error; - - fn introspect(&self) -> Result { - let mut m = r#try!(self.method_call_with_args(&"org.freedesktop.DBus.Introspectable".into(), &"Introspect".into(), |_| { - })); - r#try!(m.as_result()); - let mut i = m.iter_init(); - let data: String = r#try!(i.read()); - Ok(data) - } -} - -pub fn org_freedesktop_dbus_introspectable_server(factory: &tree::Factory, D>, data: D::Interface, f: F) -> tree::Interface, D> -where - D: tree::DataType, - D::Method: Default, - T: OrgFreedesktopDBusIntrospectable, - F: 'static + for <'z> Fn(& 'z tree::MethodInfo<'_, tree::MTFn, D>) -> & 'z T, -{ - let i = factory.interface("org.freedesktop.DBus.Introspectable", data); - let f = ::std::sync::Arc::new(f); - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let d = fclone(minfo); - let data = r#try!(d.introspect()); - let rm = minfo.msg.method_return(); - let rm = rm.append1(data); - Ok(vec!(rm)) - }; - let m = factory.method("Introspect", Default::default(), h); - let m = m.out_arg(("data", "s")); - let i = i.add_m(m); - i -} - -pub trait OrgFreedesktopDBusProperties { - type Err; - fn get(&self, interface_name: &str, property_name: &str) -> Result>, Self::Err>; - fn set(&self, interface_name: &str, property_name: &str, value: arg::Variant>) -> Result<(), Self::Err>; - fn get_all(&self, interface_name: &str) -> Result<::std::collections::HashMap>>, Self::Err>; -} - -impl<'a, C: ::std::ops::Deref> OrgFreedesktopDBusProperties for dbus::ConnPath<'a, C> { - type Err = dbus::Error; - - fn get(&self, interface_name: &str, property_name: &str) -> Result>, Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.freedesktop.DBus.Properties".into(), &"Get".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(interface_name); - i.append(property_name); - })); - r#try!(m.as_result()); - let mut i = m.iter_init(); - let value: arg::Variant> = r#try!(i.read()); - Ok(value) - } - - fn set(&self, interface_name: &str, property_name: &str, value: arg::Variant>) -> Result<(), Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.freedesktop.DBus.Properties".into(), &"Set".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(interface_name); - i.append(property_name); - i.append(value); - })); - r#try!(m.as_result()); - Ok(()) - } - - fn get_all(&self, interface_name: &str) -> Result<::std::collections::HashMap>>, Self::Err> { - let mut m = r#try!(self.method_call_with_args(&"org.freedesktop.DBus.Properties".into(), &"GetAll".into(), |msg| { - let mut i = arg::IterAppend::new(msg); - i.append(interface_name); - })); - r#try!(m.as_result()); - let mut i = m.iter_init(); - let props: ::std::collections::HashMap>> = r#try!(i.read()); - Ok(props) - } -} - -pub fn org_freedesktop_dbus_properties_server(factory: &tree::Factory, D>, data: D::Interface, f: F) -> tree::Interface, D> -where - D: tree::DataType, - D::Method: Default, - T: OrgFreedesktopDBusProperties, - F: 'static + for <'z> Fn(& 'z tree::MethodInfo<'_, tree::MTFn, D>) -> & 'z T, -{ - let i = factory.interface("org.freedesktop.DBus.Properties", data); - let f = ::std::sync::Arc::new(f); - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let interface_name: &str = r#try!(i.read()); - let property_name: &str = r#try!(i.read()); - let d = fclone(minfo); - let value = r#try!(d.get(interface_name, property_name)); - let rm = minfo.msg.method_return(); - let rm = rm.append1(value); - Ok(vec!(rm)) - }; - let m = factory.method("Get", Default::default(), h); - let m = m.in_arg(("interface_name", "s")); - let m = m.in_arg(("property_name", "s")); - let m = m.out_arg(("value", "v")); - let i = i.add_m(m); - - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let interface_name: &str = r#try!(i.read()); - let property_name: &str = r#try!(i.read()); - let value: arg::Variant> = r#try!(i.read()); - let d = fclone(minfo); - r#try!(d.set(interface_name, property_name, value)); - let rm = minfo.msg.method_return(); - Ok(vec!(rm)) - }; - let m = factory.method("Set", Default::default(), h); - let m = m.in_arg(("interface_name", "s")); - let m = m.in_arg(("property_name", "s")); - let m = m.in_arg(("value", "v")); - let i = i.add_m(m); - - let fclone = f.clone(); - let h = move |minfo: &tree::MethodInfo<'_, tree::MTFn, D>| { - let mut i = minfo.msg.iter_init(); - let interface_name: &str = r#try!(i.read()); - let d = fclone(minfo); - let props = r#try!(d.get_all(interface_name)); - let rm = minfo.msg.method_return(); - let rm = rm.append1(props); - Ok(vec!(rm)) - }; - let m = factory.method("GetAll", Default::default(), h); - let m = m.in_arg(("interface_name", "s")); - let m = m.out_arg(("props", "a{sv}")); - let i = i.add_m(m); - i -} diff --git a/src/pa_eq/mod.rs b/src/pa_eq/mod.rs deleted file mode 100644 index 09b2039..0000000 --- a/src/pa_eq/mod.rs +++ /dev/null @@ -1,115 +0,0 @@ -mod dbus_api; - -use crate::cli::pa_eq::*; -use crate::utils::*; -use crate::Filter; - -use self::dbus_api::equalizing_manager::OrgPulseAudioExtEqualizing1Manager; -use self::dbus_api::server_lookup::OrgPulseAudioServerLookup1; -use self::dbus_api::sink::OrgPulseAudioExtEqualizing1Equalizer; - -use dbus::{BusType, ConnPath, Connection}; - -use failure::{Error, ResultExt}; - -#[derive(Fail, Debug)] -#[fail(display = "No equalized sink found")] -struct NoEqualizedSink; - -pub fn main(cmd: Command) -> Result<(), Error> { - use crate::cli::pa_eq::Command::*; - - warn!("The PulseAudio equalizer has been deprecated for a while, and is known to sometimes cause crashes, latency or audible artifacts"); - - match cmd { - Load(args) => load(args), - Reset(args) => reset(args), - } -} - -pub fn reset(_args: ResetCli) -> Result<(), Error> { - let conn = connect()?; - let conn_sink = get_equalized_sink(&conn)?; - let filter_rate = conn_sink.get_filter_sample_rate()?; - let filter = Filter { - preamp: 1f64, - frequencies: vec![], - coefficients: vec![], - } - .pad(filter_rate); - - send_filter(&conn_sink, filter)?; - - Ok(()) -} - -pub fn load(args: LoadCli) -> Result<(), Error> { - let conn = connect()?; - let conn_sink = get_equalized_sink(&conn)?; - - let filter = read_filter_from_arg(&args.file)?; - - let filter_rate = conn_sink.get_filter_sample_rate()?; - send_filter(&conn_sink, filter.pad(filter_rate))?; - - Ok(()) -} - -fn connect() -> Result { - Ok(connect_impl().context( - "Could not connect to PulseAudio's D-Bus socket. Have you loaded the 'module-dbus-protocol' module?" - )?) -} - -fn connect_impl() -> Result { - let pulse_sock_path = get_pulse_dbus_sock()?; - info!("PulseAudio's D-Bus socket path is: {}", pulse_sock_path); - - trace!("Connecting to PulseAudio's D-Bus socket"); - Ok(Connection::open_private(&pulse_sock_path)?) -} - -fn get_equalized_sink(conn: &Connection) -> Result, Error> { - Ok(get_equalized_sink_impl(conn).context( - "Could not find an equalized sink. Have you loaded the 'module-equalizer-sink' module?", - )?) -} - -fn get_equalized_sink_impl(conn: &Connection) -> Result, Error> { - let conn_manager = conn.with_path("org.PulseAudio.Core1", "/org/pulseaudio/equalizing1", 2000); - - // TODO: make that a command-line option - trace!("Getting (one of) the equalized sink(s)"); - let mut sinks = conn_manager.get_equalized_sinks()?; - let sink_path = sinks.pop().ok_or(NoEqualizedSink {})?; - info!("Using equalized sink: {:?}", sink_path.as_cstr()); - - trace!("Connecting to equalized sink"); - Ok(conn.with_path("org.PulseAudio.Core1", sink_path, 2000)) -} - -fn send_filter(conn_sink: &ConnPath<'_, &Connection>, filter: Filter) -> Result<(), Error> { - let channel = conn_sink.get_nchannels()?; - info!("Using channel: {}", channel); - trace!("Sending filter: {:?}", filter); - conn_sink.seed_filter( - channel, - filter.frequencies, - filter - .coefficients - .into_iter() - .map(decibel_to_ratio) - .collect(), - decibel_to_ratio(filter.preamp), - )?; - Ok(()) -} - -fn get_pulse_dbus_sock() -> Result { - trace!("Connecting to the D-Bus' session bus"); - let conn = Connection::get_private(BusType::Session)?; - let conn = conn.with_path("org.PulseAudio1", "/org/pulseaudio/server_lookup1", 2000); - - trace!("Checking PulseAudio's D-Bus socket path"); - Ok(conn.get_address()?) -} diff --git a/src/utils.rs b/src/utils.rs index 2e585b0..4596b3f 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -67,34 +67,3 @@ where message: format!("{}", error), } } - -pub fn decibel_to_ratio(decibel: f64) -> f64 { - 10f64.powf(decibel / 10f64).sqrt() -} - -/* -fn introspect(conn: &dbus::ConnPath<&Connection>) { - let mut thing = conn - .method_call_with_args( - &"org.freedesktop.DBus.Introspectable".into(), - &"Introspect".into(), - |_| {}, - ).unwrap(); - thing.as_result().unwrap(); - - println!("{}", thing.iter_init().read::().unwrap()); -} -*/ - -#[cfg(test)] -mod tests { - - #[test] - fn decibel_to_ratio() { - assert_eq!(super::decibel_to_ratio(0f64), 1f64); - assert_eq!(super::decibel_to_ratio(20f64), 10f64); - assert_eq!(super::decibel_to_ratio(40f64), 100f64); - assert_eq!(super::decibel_to_ratio(60f64), 1000f64); - } - -} -- cgit v1.2.3