summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMinijackson <minijackson@riseup.net>2018-11-05 12:05:10 +0100
committerMinijackson <minijackson@riseup.net>2018-11-05 12:05:10 +0100
commitcd0d8bb37f5335fe04e082c6c1ad333fd621d9f8 (patch)
treedcf0c4b9321fd54789c2722043516c29c4733a72
parentdecea26274bd3b7f613143a69d87dca1eabee50c (diff)
downloadset_eq-cd0d8bb37f5335fe04e082c6c1ad333fd621d9f8.tar.gz
set_eq-cd0d8bb37f5335fe04e082c6c1ad333fd621d9f8.zip
Add deps badge + update dependencies
-rw-r--r--Cargo.lock188
-rw-r--r--Cargo.toml8
-rw-r--r--README.md2
-rw-r--r--derivation.nix2
-rw-r--r--src/main.rs3
-rw-r--r--src/parsing/equalizer_apo.rs1159
-rw-r--r--src/parsing/mod.rs7
7 files changed, 84 insertions, 1285 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 4d6b4de..e4783d8 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -15,11 +15,6 @@ dependencies = [
15] 15]
16 16
17[[package]] 17[[package]]
18name = "arrayref"
19version = "0.3.5"
20source = "registry+https://github.com/rust-lang/crates.io-index"
21
22[[package]]
23name = "ascii-canvas" 18name = "ascii-canvas"
24version = "1.0.0" 19version = "1.0.0"
25source = "registry+https://github.com/rust-lang/crates.io-index" 20source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -29,16 +24,6 @@ dependencies = [
29 24
30[[package]] 25[[package]]
31name = "atty" 26name = "atty"
32version = "0.1.2"
33source = "registry+https://github.com/rust-lang/crates.io-index"
34dependencies = [
35 "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
36 "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
37 "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
38]
39
40[[package]]
41name = "atty"
42version = "0.2.11" 27version = "0.2.11"
43source = "registry+https://github.com/rust-lang/crates.io-index" 28source = "registry+https://github.com/rust-lang/crates.io-index"
44dependencies = [ 29dependencies = [
@@ -70,15 +55,15 @@ dependencies = [
70 55
71[[package]] 56[[package]]
72name = "bit-set" 57name = "bit-set"
73version = "0.4.0" 58version = "0.5.0"
74source = "registry+https://github.com/rust-lang/crates.io-index" 59source = "registry+https://github.com/rust-lang/crates.io-index"
75dependencies = [ 60dependencies = [
76 "bit-vec 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 61 "bit-vec 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
77] 62]
78 63
79[[package]] 64[[package]]
80name = "bit-vec" 65name = "bit-vec"
81version = "0.4.4" 66version = "0.5.0"
82source = "registry+https://github.com/rust-lang/crates.io-index" 67source = "registry+https://github.com/rust-lang/crates.io-index"
83 68
84[[package]] 69[[package]]
@@ -88,16 +73,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
88 73
89[[package]] 74[[package]]
90name = "block-buffer" 75name = "block-buffer"
91version = "0.3.3" 76version = "0.7.0"
77source = "registry+https://github.com/rust-lang/crates.io-index"
78dependencies = [
79 "block-padding 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
80 "byte-tools 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
81 "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
82 "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
83]
84
85[[package]]
86name = "block-padding"
87version = "0.1.2"
92source = "registry+https://github.com/rust-lang/crates.io-index" 88source = "registry+https://github.com/rust-lang/crates.io-index"
93dependencies = [ 89dependencies = [
94 "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", 90 "byte-tools 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
95 "byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
96] 91]
97 92
98[[package]] 93[[package]]
99name = "byte-tools" 94name = "byte-tools"
100version = "0.2.0" 95version = "0.3.0"
96source = "registry+https://github.com/rust-lang/crates.io-index"
97
98[[package]]
99name = "byteorder"
100version = "1.2.7"
101source = "registry+https://github.com/rust-lang/crates.io-index" 101source = "registry+https://github.com/rust-lang/crates.io-index"
102 102
103[[package]] 103[[package]]
@@ -126,7 +126,7 @@ dependencies = [
126 126
127[[package]] 127[[package]]
128name = "clap-log-flag" 128name = "clap-log-flag"
129version = "0.1.0" 129version = "0.2.1"
130source = "registry+https://github.com/rust-lang/crates.io-index" 130source = "registry+https://github.com/rust-lang/crates.io-index"
131dependencies = [ 131dependencies = [
132 "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", 132 "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -171,22 +171,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
171 171
172[[package]] 172[[package]]
173name = "digest" 173name = "digest"
174version = "0.7.6" 174version = "0.8.0"
175source = "registry+https://github.com/rust-lang/crates.io-index" 175source = "registry+https://github.com/rust-lang/crates.io-index"
176dependencies = [ 176dependencies = [
177 "generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 177 "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
178] 178]
179 179
180[[package]] 180[[package]]
181name = "docopt" 181name = "docopt"
182version = "0.8.3" 182version = "1.0.2"
183source = "registry+https://github.com/rust-lang/crates.io-index" 183source = "registry+https://github.com/rust-lang/crates.io-index"
184dependencies = [ 184dependencies = [
185 "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 185 "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
186 "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 186 "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
187 "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", 187 "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
188 "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", 188 "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
189 "strsim 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", 189 "strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
190] 190]
191 191
192[[package]] 192[[package]]
@@ -196,8 +196,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
196 196
197[[package]] 197[[package]]
198name = "ena" 198name = "ena"
199version = "0.5.0" 199version = "0.10.1"
200source = "registry+https://github.com/rust-lang/crates.io-index" 200source = "registry+https://github.com/rust-lang/crates.io-index"
201dependencies = [
202 "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
203]
201 204
202[[package]] 205[[package]]
203name = "env_logger" 206name = "env_logger"
@@ -257,7 +260,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
257 260
258[[package]] 261[[package]]
259name = "generic-array" 262name = "generic-array"
260version = "0.9.0" 263version = "0.12.0"
261source = "registry+https://github.com/rust-lang/crates.io-index" 264source = "registry+https://github.com/rust-lang/crates.io-index"
262dependencies = [ 265dependencies = [
263 "typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 266 "typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -295,45 +298,23 @@ dependencies = [
295 298
296[[package]] 299[[package]]
297name = "lalrpop" 300name = "lalrpop"
298version = "0.15.2" 301version = "0.16.1"
299source = "registry+https://github.com/rust-lang/crates.io-index" 302source = "registry+https://github.com/rust-lang/crates.io-index"
300dependencies = [ 303dependencies = [
301 "ascii-canvas 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 304 "ascii-canvas 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
302 "atty 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 305 "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
303 "bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 306 "bit-set 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
304 "diff 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", 307 "diff 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
305 "digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", 308 "docopt 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
306 "docopt 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", 309 "ena 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
307 "ena 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
308 "itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)", 310 "itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)",
309 "lalrpop-snap 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)", 311 "lalrpop-util 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
310 "lalrpop-util 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)",
311 "petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)", 312 "petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)",
312 "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 313 "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
313 "regex-syntax 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 314 "regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
314 "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", 315 "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
315 "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", 316 "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
316 "sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 317 "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
317 "string_cache 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
318 "term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
319 "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
320]
321
322[[package]]
323name = "lalrpop-snap"
324version = "0.15.2"
325source = "registry+https://github.com/rust-lang/crates.io-index"
326dependencies = [
327 "ascii-canvas 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
328 "atty 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
329 "bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
330 "diff 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
331 "ena 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
332 "itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)",
333 "lalrpop-util 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)",
334 "petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)",
335 "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
336 "regex-syntax 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
337 "string_cache 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", 318 "string_cache 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
338 "term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 319 "term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
339 "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 320 "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -341,7 +322,7 @@ dependencies = [
341 322
342[[package]] 323[[package]]
343name = "lalrpop-util" 324name = "lalrpop-util"
344version = "0.15.2" 325version = "0.16.1"
345source = "registry+https://github.com/rust-lang/crates.io-index" 326source = "registry+https://github.com/rust-lang/crates.io-index"
346 327
347[[package]] 328[[package]]
@@ -392,6 +373,11 @@ dependencies = [
392] 373]
393 374
394[[package]] 375[[package]]
376name = "opaque-debug"
377version = "0.2.1"
378source = "registry+https://github.com/rust-lang/crates.io-index"
379
380[[package]]
395name = "ordermap" 381name = "ordermap"
396version = "0.3.5" 382version = "0.3.5"
397source = "registry+https://github.com/rust-lang/crates.io-index" 383source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -519,18 +505,6 @@ dependencies = [
519 505
520[[package]] 506[[package]]
521name = "regex" 507name = "regex"
522version = "0.2.11"
523source = "registry+https://github.com/rust-lang/crates.io-index"
524dependencies = [
525 "aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
526 "memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
527 "regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
528 "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
529 "utf8-ranges 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
530]
531
532[[package]]
533name = "regex"
534version = "1.0.5" 508version = "1.0.5"
535source = "registry+https://github.com/rust-lang/crates.io-index" 509source = "registry+https://github.com/rust-lang/crates.io-index"
536dependencies = [ 510dependencies = [
@@ -543,19 +517,6 @@ dependencies = [
543 517
544[[package]] 518[[package]]
545name = "regex-syntax" 519name = "regex-syntax"
546version = "0.4.2"
547source = "registry+https://github.com/rust-lang/crates.io-index"
548
549[[package]]
550name = "regex-syntax"
551version = "0.5.6"
552source = "registry+https://github.com/rust-lang/crates.io-index"
553dependencies = [
554 "ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
555]
556
557[[package]]
558name = "regex-syntax"
559version = "0.6.2" 520version = "0.6.2"
560source = "registry+https://github.com/rust-lang/crates.io-index" 521source = "registry+https://github.com/rust-lang/crates.io-index"
561dependencies = [ 522dependencies = [
@@ -602,12 +563,12 @@ name = "set_eq"
602version = "0.1.0" 563version = "0.1.0"
603dependencies = [ 564dependencies = [
604 "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", 565 "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
605 "clap-log-flag 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 566 "clap-log-flag 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
606 "clap-verbosity-flag 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 567 "clap-verbosity-flag 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
607 "dbus 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 568 "dbus 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
608 "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 569 "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
609 "lalrpop 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)", 570 "lalrpop 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
610 "lalrpop-util 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)", 571 "lalrpop-util 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
611 "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", 572 "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
612 "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", 573 "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
613 "serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)", 574 "serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -616,13 +577,13 @@ dependencies = [
616 577
617[[package]] 578[[package]]
618name = "sha2" 579name = "sha2"
619version = "0.7.1" 580version = "0.8.0"
620source = "registry+https://github.com/rust-lang/crates.io-index" 581source = "registry+https://github.com/rust-lang/crates.io-index"
621dependencies = [ 582dependencies = [
622 "block-buffer 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 583 "block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
623 "byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 584 "digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
624 "digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
625 "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 585 "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
586 "opaque-debug 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
626] 587]
627 588
628[[package]] 589[[package]]
@@ -663,11 +624,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
663 624
664[[package]] 625[[package]]
665name = "strsim" 626name = "strsim"
666version = "0.6.0"
667source = "registry+https://github.com/rust-lang/crates.io-index"
668
669[[package]]
670name = "strsim"
671version = "0.7.0" 627version = "0.7.0"
672source = "registry+https://github.com/rust-lang/crates.io-index" 628source = "registry+https://github.com/rust-lang/crates.io-index"
673 629
@@ -861,29 +817,29 @@ dependencies = [
861[metadata] 817[metadata]
862"checksum aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "68f56c7353e5a9547cbd76ed90f7bb5ffc3ba09d4ea9bd1d8c06c8b1142eeb5a" 818"checksum aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "68f56c7353e5a9547cbd76ed90f7bb5ffc3ba09d4ea9bd1d8c06c8b1142eeb5a"
863"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" 819"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
864"checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee"
865"checksum ascii-canvas 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b385d69402821a1c254533a011a312531cbcc0e3e24f19bbb4747a5a2daf37e2" 820"checksum ascii-canvas 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b385d69402821a1c254533a011a312531cbcc0e3e24f19bbb4747a5a2daf37e2"
866"checksum atty 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d0fd4c0631f06448cc45a6bbb3b710ebb7ff8ccb96a0800c994afe23a70d5df2"
867"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" 821"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
868"checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a" 822"checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a"
869"checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0" 823"checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0"
870"checksum bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9bf6104718e80d7b26a68fdbacff3481cfc05df670821affc7e9cbc1884400c" 824"checksum bit-set 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6f1efcc46c18245a69c38fcc5cc650f16d3a59d034f3106e9ed63748f695730a"
871"checksum bit-vec 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "02b4ff8b16e6076c3e14220b39fbc1fabb6737522281a388998046859400895f" 825"checksum bit-vec 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4440d5cb623bb7390ae27fec0bb6c61111969860f8e3ae198bfa0663645e67cf"
872"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" 826"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
873"checksum block-buffer 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a076c298b9ecdb530ed9d967e74a6027d6a7478924520acddcddc24c1c8ab3ab" 827"checksum block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49665c62e0e700857531fa5d3763e91b539ff1abeebd56808d378b495870d60d"
874"checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" 828"checksum block-padding 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fc4358306e344bf9775d0197fd00d2603e5afb0771bb353538630f022068ea3"
829"checksum byte-tools 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "980479e6fde23246dfb54d47580d66b4e99202e7579c5eaa9fe10ecb5ebd2182"
830"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d"
875"checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" 831"checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16"
876"checksum cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4e7bb64a8ebb0d856483e1e682ea3422f883c5f5615a90d51a2c82fe87fdd3" 832"checksum cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4e7bb64a8ebb0d856483e1e682ea3422f883c5f5615a90d51a2c82fe87fdd3"
877"checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" 833"checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e"
878"checksum clap-log-flag 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b05213138aad9c0f820773c51e829eae4189986435aa5c115a6465b385892a5" 834"checksum clap-log-flag 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "935e3497eaa984678428ec289f9991c1857b3380c37cf9c3f5b5fbea7188cfba"
879"checksum clap-verbosity-flag 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bda14f5323b2b747f52908c5b7b8af7790784088bc7c2957a11695e39ad476dc" 835"checksum clap-verbosity-flag 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bda14f5323b2b747f52908c5b7b8af7790784088bc7c2957a11695e39ad476dc"
880"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" 836"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
881"checksum dbus 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3e34c238dfb3f5881d46ad301403cd8f8ecf946e2a4e89bdd1166728b68b5008" 837"checksum dbus 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3e34c238dfb3f5881d46ad301403cd8f8ecf946e2a4e89bdd1166728b68b5008"
882"checksum diff 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "3c2b69f912779fbb121ceb775d74d51e915af17aaebc38d28a592843a2dd0a3a" 838"checksum diff 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "3c2b69f912779fbb121ceb775d74d51e915af17aaebc38d28a592843a2dd0a3a"
883"checksum digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "03b072242a8cbaf9c145665af9d250c59af3b958f83ed6824e13533cf76d5b90" 839"checksum digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f47366984d3ad862010e22c7ce81a7dbcaebbdfb37241a620f8b6596ee135c"
884"checksum docopt 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d8acd393692c503b168471874953a2531df0e9ab77d0b6bbc582395743300a4a" 840"checksum docopt 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "db2906c2579b5b7207fc1e328796a9a8835dc44e22dbe8e460b1d636f9a7b225"
885"checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" 841"checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0"
886"checksum ena 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cabe5a5078ac8c506d3e4430763b1ba9b609b1286913e7d08e581d1c2de9b7e5" 842"checksum ena 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "25b4e5febb25f08c49f1b07dc33a182729a6b21edfb562b5aef95f78e0dbe5bb"
887"checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38" 843"checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38"
888"checksum failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7efb22686e4a466b1ec1a15c2898f91fa9cb340452496dca654032de20ff95b9" 844"checksum failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7efb22686e4a466b1ec1a15c2898f91fa9cb340452496dca654032de20ff95b9"
889"checksum failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "946d0e98a50d9831f5d589038d2ca7f8f455b1c21028c0db0e84116a12696426" 845"checksum failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "946d0e98a50d9831f5d589038d2ca7f8f455b1c21028c0db0e84116a12696426"
@@ -891,20 +847,20 @@ dependencies = [
891"checksum fixedbitset 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33" 847"checksum fixedbitset 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33"
892"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" 848"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
893"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 849"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
894"checksum generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef25c5683767570c2bbd7deba372926a55eaae9982d7726ee2a1050239d45b9d" 850"checksum generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c0f28c2f5bfb5960175af447a2da7c18900693738343dc896ffbcabd9839592"
895"checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e" 851"checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e"
896"checksum itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)" = "f58856976b776fedd95533137617a02fb25719f40e7d9b01c7043cd65474f450" 852"checksum itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)" = "f58856976b776fedd95533137617a02fb25719f40e7d9b01c7043cd65474f450"
897"checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" 853"checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b"
898"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 854"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
899"checksum lalrpop 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ba451f7bd819b7afc99d4cf4bdcd5a4861e64955ba9680ac70df3a50625ad6cf" 855"checksum lalrpop 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c226388f060de3853c2e4e78ee68fa9038cfc65fcc8f025ce3ef92476cc8772"
900"checksum lalrpop-snap 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)" = "60013fd6be14317d43f47658b1440956a9ca48a9ed0257e0e0a59aac13e43a1f" 856"checksum lalrpop-util 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7c4eb3e3b8cd41d58f0f5aff3b10c3d394c0d0f09bea59c571f1a8371cf2cf28"
901"checksum lalrpop-util 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)" = "60c6c48ba857cd700673ce88907cadcdd7e2cd7783ed02378537c5ffd4f6460c"
902"checksum lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca488b89a5657b0a2ecd45b95609b3e848cf1755da332a0da46e2b2b1cb371a7" 857"checksum lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca488b89a5657b0a2ecd45b95609b3e848cf1755da332a0da46e2b2b1cb371a7"
903"checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d" 858"checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d"
904"checksum libdbus-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8720f9274907052cb50313f91201597868da9d625f8dd125f2aca5bddb7e83a1" 859"checksum libdbus-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8720f9274907052cb50313f91201597868da9d625f8dd125f2aca5bddb7e83a1"
905"checksum log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fcce5fa49cc693c312001daf1d13411c4a5283796bac1084299ea3e567113f" 860"checksum log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fcce5fa49cc693c312001daf1d13411c4a5283796bac1084299ea3e567113f"
906"checksum memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4b3629fe9fdbff6daa6c33b90f7c08355c1aca05a3d01fa8063b822fcf185f3b" 861"checksum memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4b3629fe9fdbff6daa6c33b90f7c08355c1aca05a3d01fa8063b822fcf185f3b"
907"checksum new_debug_unreachable 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0cdc457076c78ab54d5e0d6fa7c47981757f1e34dc39ff92787f217dede586c4" 862"checksum new_debug_unreachable 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0cdc457076c78ab54d5e0d6fa7c47981757f1e34dc39ff92787f217dede586c4"
863"checksum opaque-debug 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "51ecbcb821e1bd256d456fe858aaa7f380b63863eab2eb86eee1bd9f33dd6682"
908"checksum ordermap 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a86ed3f5f244b372d6b1a00b72ef7f8876d0bc6a78a4c9985c53614041512063" 864"checksum ordermap 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a86ed3f5f244b372d6b1a00b72ef7f8876d0bc6a78a4c9985c53614041512063"
909"checksum petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3659d1ee90221741f65dd128d9998311b0e40c5d3c23a62445938214abce4f" 865"checksum petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3659d1ee90221741f65dd128d9998311b0e40c5d3c23a62445938214abce4f"
910"checksum phf_generator 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "03dc191feb9b08b0dc1330d6549b795b9d81aec19efe6b4a45aec8d4caee0c4b" 866"checksum phf_generator 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "03dc191feb9b08b0dc1330d6549b795b9d81aec19efe6b4a45aec8d4caee0c4b"
@@ -922,22 +878,18 @@ dependencies = [
922"checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db" 878"checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db"
923"checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1" 879"checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1"
924"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" 880"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
925"checksum regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384"
926"checksum regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2069749032ea3ec200ca51e4a31df41759190a88edca0d2d86ee8bedf7073341" 881"checksum regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2069749032ea3ec200ca51e4a31df41759190a88edca0d2d86ee8bedf7073341"
927"checksum regex-syntax 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8e931c58b93d86f080c734bfd2bce7dd0079ae2331235818133c8be7f422e20e"
928"checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7"
929"checksum regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "747ba3b235651f6e2f67dfa8bcdcd073ddb7c243cb21c442fc12395dfcac212d" 882"checksum regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "747ba3b235651f6e2f67dfa8bcdcd073ddb7c243cb21c442fc12395dfcac212d"
930"checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" 883"checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395"
931"checksum ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7153dd96dade874ab973e098cb62fcdbb89a03682e46b144fd09550998d4a4a7" 884"checksum ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7153dd96dade874ab973e098cb62fcdbb89a03682e46b144fd09550998d4a4a7"
932"checksum serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "84257ccd054dc351472528c8587b4de2dbf0dc0fe2e634030c1a90bfdacebaa9" 885"checksum serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "84257ccd054dc351472528c8587b4de2dbf0dc0fe2e634030c1a90bfdacebaa9"
933"checksum serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "31569d901045afbff7a9479f793177fe9259819aff10ab4f89ef69bbc5f567fe" 886"checksum serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "31569d901045afbff7a9479f793177fe9259819aff10ab4f89ef69bbc5f567fe"
934"checksum serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)" = "43344e7ce05d0d8280c5940cabb4964bea626aa58b1ec0e8c73fa2a8512a38ce" 887"checksum serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)" = "43344e7ce05d0d8280c5940cabb4964bea626aa58b1ec0e8c73fa2a8512a38ce"
935"checksum sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9eb6be24e4c23a84d7184280d2722f7f2731fcdd4a9d886efbfe4413e4847ea0" 888"checksum sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b4d8bfd0e469f417657573d8451fb33d16cfe0989359b93baf3a1ffc639543d"
936"checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" 889"checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
937"checksum string_cache 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "25d70109977172b127fe834e5449e5ab1740b9ba49fa18a2020f509174f25423" 890"checksum string_cache 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "25d70109977172b127fe834e5449e5ab1740b9ba49fa18a2020f509174f25423"
938"checksum string_cache_codegen 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "35293b05cf1494e8ddd042a7df6756bf18d07f42d234f32e71dce8a7aabb0191" 891"checksum string_cache_codegen 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "35293b05cf1494e8ddd042a7df6756bf18d07f42d234f32e71dce8a7aabb0191"
939"checksum string_cache_shared 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc" 892"checksum string_cache_shared 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc"
940"checksum strsim 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d15c810519a91cf877e7e36e63fe068815c678181439f2f29e2562147c3694"
941"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" 893"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
942"checksum structopt 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "ca85f2c9a5a1e2d5ac686fc0be48e40f8ad803f5bbe31f692ff71eb2dd8aad45" 894"checksum structopt 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "ca85f2c9a5a1e2d5ac686fc0be48e40f8ad803f5bbe31f692ff71eb2dd8aad45"
943"checksum structopt-derive 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "1383e5db585da799a5c4acc496c5c868e18bf82e658c00c75cc91038fa26b55f" 895"checksum structopt-derive 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "1383e5db585da799a5c4acc496c5c868e18bf82e658c00c75cc91038fa26b55f"
diff --git a/Cargo.toml b/Cargo.toml
index d9d30c9..4bfe268 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,23 +13,23 @@ pa-eq = ["dbus"]
13pa-effects = ["serde_json"] 13pa-effects = ["serde_json"]
14 14
15[build-dependencies] 15[build-dependencies]
16lalrpop = "0.15.2" 16lalrpop = "0.16"
17clap = "2.32.0" 17clap = "2.32.0"
18clap-verbosity-flag = "0.2" 18clap-verbosity-flag = "0.2"
19clap-log-flag = "0.1" 19clap-log-flag = "0.2"
20structopt = "0.2" 20structopt = "0.2"
21 21
22[dependencies] 22[dependencies]
23#clap = { git = "https://github.com/kbknapp/clap-rs", branch = "v3-master" } 23#clap = { git = "https://github.com/kbknapp/clap-rs", branch = "v3-master" }
24clap = "2.32.0" 24clap = "2.32.0"
25clap-verbosity-flag = "0.2" 25clap-verbosity-flag = "0.2"
26clap-log-flag = "0.1" 26clap-log-flag = "0.2"
27structopt = "0.2" 27structopt = "0.2"
28 28
29log = "0.4.4" 29log = "0.4.4"
30failure = "0.1.2" 30failure = "0.1.2"
31 31
32lalrpop-util = "0.15.2" 32lalrpop-util = "0.16"
33regex = "1.0.4" 33regex = "1.0.4"
34 34
35dbus = { version = "0.6.2", optional = true } 35dbus = { version = "0.6.2", optional = true }
diff --git a/README.md b/README.md
index 7902bae..2775023 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
1# set_eq: A command-line tool to manipulate PulseAudio's equalizers 1# set_eq: A command-line tool to manipulate PulseAudio's equalizers
2 2
3[![dependency status](https://deps.rs/repo/github/minijackson/set_eq/status.svg)](https://deps.rs/repo/github/minijackson/set_eq)
4
3This tool will allow you to use a configuration file to send to your favorite 5This tool will allow you to use a configuration file to send to your favorite
4PulseAudio's equalizer. 6PulseAudio's equalizer.
5 7
diff --git a/derivation.nix b/derivation.nix
index 33e57d6..c46237f 100644
--- a/derivation.nix
+++ b/derivation.nix
@@ -7,7 +7,7 @@ rustPlatform.buildRustPackage rec {
7 buildInputs = [ dbus pkgconfig ]; 7 buildInputs = [ dbus pkgconfig ];
8 8
9 src = ./.; 9 src = ./.;
10 cargoSha256 = "130mvc2hbvfl0ia0mj5v33abrwnr9hhqrqrfxjwgxk2n1q9z1ay7"; 10 cargoSha256 = "08s7s63rhjgirznphi6yks2a2zlsj5f4hlz8xqmla6gvc9yr58hc";
11 11
12 preFixup = '' 12 preFixup = ''
13 mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions} 13 mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
diff --git a/src/main.rs b/src/main.rs
index fa67cb8..669ec4b 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -10,6 +10,7 @@ extern crate clap_verbosity_flag;
10#[macro_use] 10#[macro_use]
11extern crate structopt; 11extern crate structopt;
12 12
13#[macro_use]
13extern crate lalrpop_util; 14extern crate lalrpop_util;
14 15
15#[cfg(feature = "pa-eq")] 16#[cfg(feature = "pa-eq")]
@@ -73,7 +74,7 @@ fn main() {
73 74
74fn start() -> Result<(), Error> { 75fn start() -> Result<(), Error> {
75 let args = Cli::from_args(); 76 let args = Cli::from_args();
76 args.log.log_all(args.verbose.log_level())?; 77 args.log.log_all(Some(args.verbose.log_level()))?;
77 78
78 use Command::*; 79 use Command::*;
79 80
diff --git a/src/parsing/equalizer_apo.rs b/src/parsing/equalizer_apo.rs
deleted file mode 100644
index b0aa8f8..0000000
--- a/src/parsing/equalizer_apo.rs
+++ /dev/null
@@ -1,1159 +0,0 @@
1// auto-generated: "lalrpop 0.15.2"
2// sha256: 3981cad2c0ee5c1d80c3b7278bb1bc9926ee7b273c2b68423accdd84e43c494
3use ::Filter;
4use std::str::FromStr;
5#[allow(unused_extern_crates)]
6extern crate lalrpop_util as __lalrpop_util;
7
8#[cfg_attr(rustfmt, rustfmt_skip)]
9mod __parse__Main {
10 #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens)]
11
12 use ::Filter;
13 use std::str::FromStr;
14 #[allow(unused_extern_crates)]
15 extern crate lalrpop_util as __lalrpop_util;
16 use super::__intern_token::Token;
17 #[allow(dead_code)]
18 pub enum __Symbol<'input>
19 {
20 Variant0(&'input str),
21 Variant1((u32, f64)),
22 Variant2(::std::vec::Vec<(u32, f64)>),
23 Variant3(f64),
24 Variant4((Vec<u32>, Vec<f64>)),
25 Variant5(u32),
26 Variant6(Filter),
27 Variant7(i32),
28 }
29 const __ACTION: &'static [i8] = &[
30 // State 0
31 0, 0, 4, 0, 0, 0, 0,
32 // State 1
33 0, 0, 0, 0, 0, 0, 0,
34 // State 2
35 0, 6, 0, 0, 0, 0, 0,
36 // State 3
37 0, 0, 0, 0, 12, 13, 14,
38 // State 4
39 0, 0, 0, 0, 0, 0, 0,
40 // State 5
41 0, 0, 0, 0, 0, 0, 14,
42 // State 6
43 0, -12, 0, 0, 0, 0, 0,
44 // State 7
45 0, 0, 0, 17, 0, 0, 0,
46 // State 8
47 -9, 0, 0, -9, 0, 0, 0,
48 // State 9
49 -7, 0, 0, -7, 0, 0, 0,
50 // State 10
51 -8, 0, 0, -8, 0, 0, 0,
52 // State 11
53 -13, 0, 0, -13, 0, 0, 0,
54 // State 12
55 -14, 0, 0, -14, 0, 0, 0,
56 // State 13
57 -10, 0, 0, -10, -10, -10, -10,
58 // State 14
59 0, 0, 0, 0, 0, 0, 14,
60 // State 15
61 0, 0, 0, 0, 12, 13, 14,
62 // State 16
63 0, -5, 0, 0, 0, 0, 0,
64 // State 17
65 0, 0, 0, 0, 12, 13, 14,
66 // State 18
67 21, 0, 0, 0, 0, 0, 0,
68 // State 19
69 22, 0, 0, 0, 0, 0, 0,
70 // State 20
71 0, 0, 0, 0, 0, 0, -2,
72 // State 21
73 0, 0, 0, 0, 0, 0, -3,
74 ];
75 const __EOF_ACTION: &'static [i8] = &[
76 // State 0
77 0,
78 // State 1
79 -15,
80 // State 2
81 0,
82 // State 3
83 0,
84 // State 4
85 -11,
86 // State 5
87 0,
88 // State 6
89 0,
90 // State 7
91 0,
92 // State 8
93 -9,
94 // State 9
95 -7,
96 // State 10
97 -8,
98 // State 11
99 -13,
100 // State 12
101 -14,
102 // State 13
103 -10,
104 // State 14
105 0,
106 // State 15
107 0,
108 // State 16
109 0,
110 // State 17
111 0,
112 // State 18
113 0,
114 // State 19
115 -6,
116 // State 20
117 0,
118 // State 21
119 0,
120 ];
121 const __GOTO: &'static [i8] = &[
122 // State 0
123 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0,
124 // State 1
125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
126 // State 2
127 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,
128 // State 3
129 0, 0, 0, 7, 0, 8, 9, 0, 0, 10, 11, 0,
130 // State 4
131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
132 // State 5
133 0, 15, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
134 // State 6
135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
136 // State 7
137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
138 // State 8
139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
140 // State 9
141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
142 // State 10
143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
144 // State 11
145 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
146 // State 12
147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
148 // State 13
149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
150 // State 14
151 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0,
152 // State 15
153 0, 0, 0, 0, 0, 19, 9, 0, 0, 10, 11, 0,
154 // State 16
155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
156 // State 17
157 0, 0, 0, 0, 0, 20, 9, 0, 0, 10, 11, 0,
158 // State 18
159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
160 // State 19
161 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
162 // State 20
163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
164 // State 21
165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
166 ];
167 fn __expected_tokens(__state: usize) -> Vec<::std::string::String> {
168 const __TERMINAL: &'static [&'static str] = &[
169 r###"";""###,
170 r###""GraphicEQ:""###,
171 r###""Preamp:""###,
172 r###""dB""###,
173 r###"r#"-?[0-9]*\\.[0-9]+"#"###,
174 r###"r#"-[0-9]+"#"###,
175 r###"r#"[0-9]+"#"###,
176 ];
177 __ACTION[(__state * 7)..].iter().zip(__TERMINAL).filter_map(|(&state, terminal)| {
178 if state == 0 {
179 None
180 } else {
181 Some(terminal.to_string())
182 }
183 }).collect()
184 }
185 pub struct MainParser {
186 builder: super::__intern_token::__MatcherBuilder,
187 _priv: (),
188 }
189
190 impl MainParser {
191 pub fn new() -> MainParser {
192 let __builder = super::__intern_token::__MatcherBuilder::new();
193 MainParser {
194 builder: __builder,
195 _priv: (),
196 }
197 }
198
199 #[allow(dead_code)]
200 pub fn parse<
201 'input,
202 >(
203 &self,
204 input: &'input str,
205 ) -> Result<Filter, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
206 {
207 let mut __tokens = self.builder.matcher(input);
208 let mut __states = vec![0_i8];
209 let mut __symbols = vec![];
210 let mut __integer;
211 let mut __lookahead;
212 let __last_location = &mut Default::default();
213 '__shift: loop {
214 __lookahead = match __tokens.next() {
215 Some(Ok(v)) => v,
216 None => break '__shift,
217 Some(Err(e)) => return Err(e),
218 };
219 *__last_location = __lookahead.2.clone();
220 __integer = match __lookahead.1 {
221 Token(3, _) if true => 0,
222 Token(4, _) if true => 1,
223 Token(5, _) if true => 2,
224 Token(6, _) if true => 3,
225 Token(0, _) if true => 4,
226 Token(1, _) if true => 5,
227 Token(2, _) if true => 6,
228 _ => {
229 let __state = *__states.last().unwrap() as usize;
230 let __error = __lalrpop_util::ParseError::UnrecognizedToken {
231 token: Some(__lookahead),
232 expected: __expected_tokens(__state),
233 };
234 return Err(__error);
235 }
236 };
237 '__inner: loop {
238 let __state = *__states.last().unwrap() as usize;
239 let __action = __ACTION[__state * 7 + __integer];
240 if __action > 0 {
241 let __symbol = match __integer {
242 0 => match __lookahead.1 {
243 Token(3, __tok0) => __Symbol::Variant0((__tok0)),
244 _ => unreachable!(),
245 },
246 1 => match __lookahead.1 {
247 Token(4, __tok0) => __Symbol::Variant0((__tok0)),
248 _ => unreachable!(),
249 },
250 2 => match __lookahead.1 {
251 Token(5, __tok0) => __Symbol::Variant0((__tok0)),
252 _ => unreachable!(),
253 },
254 3 => match __lookahead.1 {
255 Token(6, __tok0) => __Symbol::Variant0((__tok0)),
256 _ => unreachable!(),
257 },
258 4 => match __lookahead.1 {
259 Token(0, __tok0) => __Symbol::Variant0((__tok0)),
260 _ => unreachable!(),
261 },
262 5 => match __lookahead.1 {
263 Token(1, __tok0) => __Symbol::Variant0((__tok0)),
264 _ => unreachable!(),
265 },
266 6 => match __lookahead.1 {
267 Token(2, __tok0) => __Symbol::Variant0((__tok0)),
268 _ => unreachable!(),
269 },
270 _ => unreachable!(),
271 };
272 __states.push(__action - 1);
273 __symbols.push((__lookahead.0, __symbol, __lookahead.2));
274 continue '__shift;
275 } else if __action < 0 {
276 if let Some(r) = __reduce(input, __action, Some(&__lookahead.0), &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) {
277 if r.is_err() {
278 return r;
279 }
280 return Err(__lalrpop_util::ParseError::ExtraToken { token: __lookahead });
281 }
282 } else {
283 let mut __err_lookahead = Some(__lookahead);
284 let mut __err_integer: Option<usize> = Some(__integer);
285 let __state = *__states.last().unwrap() as usize;
286 let __error = __lalrpop_util::ParseError::UnrecognizedToken {
287 token: __err_lookahead,
288 expected: __expected_tokens(__state),
289 };
290 return Err(__error)
291 }
292 }
293 }
294 loop {
295 let __state = *__states.last().unwrap() as usize;
296 let __action = __EOF_ACTION[__state];
297 if __action < 0 {
298 if let Some(r) = __reduce(input, __action, None, &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) {
299 return r;
300 }
301 } else {
302 let mut __err_lookahead = None;
303 let mut __err_integer: Option<usize> = None;
304 let __state = *__states.last().unwrap() as usize;
305 let __error = __lalrpop_util::ParseError::UnrecognizedToken {
306 token: __err_lookahead,
307 expected: __expected_tokens(__state),
308 };
309 return Err(__error)
310 }
311 }
312 }
313 }
314 pub(crate) fn __reduce<
315 'input,
316 >(
317 input: &'input str,
318 __action: i8,
319 __lookahead_start: Option<&usize>,
320 __states: &mut ::std::vec::Vec<i8>,
321 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
322 _: ::std::marker::PhantomData<()>,
323 ) -> Option<Result<Filter,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
324 {
325 let (__pop_states, __symbol, __nonterminal) = match -__action {
326 1 => {
327 __reduce1(input, __action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<()>)
328 }
329 2 => {
330 __reduce2(input, __action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<()>)
331 }
332 3 => {
333 __reduce3(input, __action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<()>)
334 }
335 4 => {
336 __reduce4(input, __action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<()>)
337 }
338 5 => {
339 __reduce5(input, __action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<()>)
340 }
341 6 => {
342 __reduce6(input, __action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<()>)
343 }
344 7 => {
345 __reduce7(input, __action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<()>)
346 }
347 8 => {
348 __reduce8(input, __action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<()>)
349 }
350 9 => {
351 __reduce9(input, __action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<()>)
352 }
353 10 => {
354 __reduce10(input, __action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<()>)
355 }
356 11 => {
357 __reduce11(input, __action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<()>)
358 }
359 12 => {
360 __reduce12(input, __action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<()>)
361 }
362 13 => {
363 __reduce13(input, __action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<()>)
364 }
365 14 => {
366 __reduce14(input, __action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<()>)
367 }
368 15 => {
369 // __Main = Main => ActionFn(0);
370 let __sym0 = __pop_Variant6(__symbols);
371 let __start = __sym0.0.clone();
372 let __end = __sym0.2.clone();
373 let __nt = super::__action0::<>(input, __sym0);
374 return Some(Ok(__nt));
375 }
376 _ => panic!("invalid action code {}", __action)
377 };
378 let __states_len = __states.len();
379 __states.truncate(__states_len - __pop_states);
380 __symbols.push(__symbol);
381 let __state = *__states.last().unwrap() as usize;
382 let __next_state = __GOTO[__state * 12 + __nonterminal] - 1;
383 __states.push(__next_state);
384 None
385 }
386 fn __pop_Variant4<
387 'input,
388 >(
389 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
390 ) -> (usize, (Vec<u32>, Vec<f64>), usize)
391 {
392 match __symbols.pop().unwrap() {
393 (__l, __Symbol::Variant4(__v), __r) => (__l, __v, __r),
394 _ => panic!("symbol type mismatch")
395 }
396 }
397 fn __pop_Variant1<
398 'input,
399 >(
400 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
401 ) -> (usize, (u32, f64), usize)
402 {
403 match __symbols.pop().unwrap() {
404 (__l, __Symbol::Variant1(__v), __r) => (__l, __v, __r),
405 _ => panic!("symbol type mismatch")
406 }
407 }
408 fn __pop_Variant6<
409 'input,
410 >(
411 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
412 ) -> (usize, Filter, usize)
413 {
414 match __symbols.pop().unwrap() {
415 (__l, __Symbol::Variant6(__v), __r) => (__l, __v, __r),
416 _ => panic!("symbol type mismatch")
417 }
418 }
419 fn __pop_Variant3<
420 'input,
421 >(
422 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
423 ) -> (usize, f64, usize)
424 {
425 match __symbols.pop().unwrap() {
426 (__l, __Symbol::Variant3(__v), __r) => (__l, __v, __r),
427 _ => panic!("symbol type mismatch")
428 }
429 }
430 fn __pop_Variant7<
431 'input,
432 >(
433 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
434 ) -> (usize, i32, usize)
435 {
436 match __symbols.pop().unwrap() {
437 (__l, __Symbol::Variant7(__v), __r) => (__l, __v, __r),
438 _ => panic!("symbol type mismatch")
439 }
440 }
441 fn __pop_Variant5<
442 'input,
443 >(
444 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
445 ) -> (usize, u32, usize)
446 {
447 match __symbols.pop().unwrap() {
448 (__l, __Symbol::Variant5(__v), __r) => (__l, __v, __r),
449 _ => panic!("symbol type mismatch")
450 }
451 }
452 fn __pop_Variant2<
453 'input,
454 >(
455 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
456 ) -> (usize, ::std::vec::Vec<(u32, f64)>, usize)
457 {
458 match __symbols.pop().unwrap() {
459 (__l, __Symbol::Variant2(__v), __r) => (__l, __v, __r),
460 _ => panic!("symbol type mismatch")
461 }
462 }
463 fn __pop_Variant0<
464 'input,
465 >(
466 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
467 ) -> (usize, &'input str, usize)
468 {
469 match __symbols.pop().unwrap() {
470 (__l, __Symbol::Variant0(__v), __r) => (__l, __v, __r),
471 _ => panic!("symbol type mismatch")
472 }
473 }
474 pub(crate) fn __reduce1<
475 'input,
476 >(
477 input: &'input str,
478 __action: i8,
479 __lookahead_start: Option<&usize>,
480 __states: &mut ::std::vec::Vec<i8>,
481 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
482 _: ::std::marker::PhantomData<()>,
483 ) -> (usize, (usize,__Symbol<'input>,usize), usize)
484 {
485 // (<(Integer Float)> ";") = Integer, Float, ";" => ActionFn(15);
486 let __sym2 = __pop_Variant0(__symbols);
487 let __sym1 = __pop_Variant3(__symbols);
488 let __sym0 = __pop_Variant5(__symbols);
489 let __start = __sym0.0.clone();
490 let __end = __sym2.2.clone();
491 let __nt = super::__action15::<>(input, __sym0, __sym1, __sym2);
492 let __symbol = (__start, __Symbol::Variant1(__nt), __end);
493 (3, __symbol, 0)
494 }
495 pub(crate) fn __reduce2<
496 'input,
497 >(
498 input: &'input str,
499 __action: i8,
500 __lookahead_start: Option<&usize>,
501 __states: &mut ::std::vec::Vec<i8>,
502 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
503 _: ::std::marker::PhantomData<()>,
504 ) -> (usize, (usize,__Symbol<'input>,usize), usize)
505 {
506 // (<(Integer Float)> ";")+ = Integer, Float, ";" => ActionFn(17);
507 let __sym2 = __pop_Variant0(__symbols);
508 let __sym1 = __pop_Variant3(__symbols);
509 let __sym0 = __pop_Variant5(__symbols);
510 let __start = __sym0.0.clone();
511 let __end = __sym2.2.clone();
512 let __nt = super::__action17::<>(input, __sym0, __sym1, __sym2);
513 let __symbol = (__start, __Symbol::Variant2(__nt), __end);
514 (3, __symbol, 1)
515 }
516 pub(crate) fn __reduce3<
517 'input,
518 >(
519 input: &'input str,
520 __action: i8,
521 __lookahead_start: Option<&usize>,
522 __states: &mut ::std::vec::Vec<i8>,
523 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
524 _: ::std::marker::PhantomData<()>,
525 ) -> (usize, (usize,__Symbol<'input>,usize), usize)
526 {
527 // (<(Integer Float)> ";")+ = (<(Integer Float)> ";")+, Integer, Float, ";" => ActionFn(18);
528 let __sym3 = __pop_Variant0(__symbols);
529 let __sym2 = __pop_Variant3(__symbols);
530 let __sym1 = __pop_Variant5(__symbols);
531 let __sym0 = __pop_Variant2(__symbols);
532 let __start = __sym0.0.clone();
533 let __end = __sym3.2.clone();
534 let __nt = super::__action18::<>(input, __sym0, __sym1, __sym2, __sym3);
535 let __symbol = (__start, __Symbol::Variant2(__nt), __end);
536 (4, __symbol, 1)
537 }
538 pub(crate) fn __reduce4<
539 'input,
540 >(
541 input: &'input str,
542 __action: i8,
543 __lookahead_start: Option<&usize>,
544 __states: &mut ::std::vec::Vec<i8>,
545 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
546 _: ::std::marker::PhantomData<()>,
547 ) -> (usize, (usize,__Symbol<'input>,usize), usize)
548 {
549 // (Integer Float) = Integer, Float => ActionFn(14);
550 let __sym1 = __pop_Variant3(__symbols);
551 let __sym0 = __pop_Variant5(__symbols);
552 let __start = __sym0.0.clone();
553 let __end = __sym1.2.clone();
554 let __nt = super::__action14::<>(input, __sym0, __sym1);
555 let __symbol = (__start, __Symbol::Variant1(__nt), __end);
556 (2, __symbol, 2)
557 }
558 pub(crate) fn __reduce5<
559 'input,
560 >(
561 input: &'input str,
562 __action: i8,
563 __lookahead_start: Option<&usize>,
564 __states: &mut ::std::vec::Vec<i8>,
565 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
566 _: ::std::marker::PhantomData<()>,
567 ) -> (usize, (usize,__Symbol<'input>,usize), usize)
568 {
569 // Decibel = Float, "dB" => ActionFn(4);
570 let __sym1 = __pop_Variant0(__symbols);
571 let __sym0 = __pop_Variant3(__symbols);
572 let __start = __sym0.0.clone();
573 let __end = __sym1.2.clone();
574 let __nt = super::__action4::<>(input, __sym0, __sym1);
575 let __symbol = (__start, __Symbol::Variant3(__nt), __end);
576 (2, __symbol, 3)
577 }
578 pub(crate) fn __reduce6<
579 'input,
580 >(
581 input: &'input str,
582 __action: i8,
583 __lookahead_start: Option<&usize>,
584 __states: &mut ::std::vec::Vec<i8>,
585 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
586 _: ::std::marker::PhantomData<()>,
587 ) -> (usize, (usize,__Symbol<'input>,usize), usize)
588 {
589 // Eq = "GraphicEQ:", (<(Integer Float)> ";")+, Integer, Float => ActionFn(16);
590 let __sym3 = __pop_Variant3(__symbols);
591 let __sym2 = __pop_Variant5(__symbols);
592 let __sym1 = __pop_Variant2(__symbols);
593 let __sym0 = __pop_Variant0(__symbols);
594 let __start = __sym0.0.clone();
595 let __end = __sym3.2.clone();
596 let __nt = super::__action16::<>(input, __sym0, __sym1, __sym2, __sym3);
597 let __symbol = (__start, __Symbol::Variant4(__nt), __end);
598 (4, __symbol, 4)
599 }
600 pub(crate) fn __reduce7<
601 'input,
602 >(
603 input: &'input str,
604 __action: i8,
605 __lookahead_start: Option<&usize>,
606 __states: &mut ::std::vec::Vec<i8>,
607 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
608 _: ::std::marker::PhantomData<()>,
609 ) -> (usize, (usize,__Symbol<'input>,usize), usize)
610 {
611 // Float = RawFloat => ActionFn(5);
612 let __sym0 = __pop_Variant3(__symbols);
613 let __start = __sym0.0.clone();
614 let __end = __sym0.2.clone();
615 let __nt = super::__action5::<>(input, __sym0);
616 let __symbol = (__start, __Symbol::Variant3(__nt), __end);
617 (1, __symbol, 5)
618 }
619 pub(crate) fn __reduce8<
620 'input,
621 >(
622 input: &'input str,
623 __action: i8,
624 __lookahead_start: Option<&usize>,
625 __states: &mut ::std::vec::Vec<i8>,
626 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
627 _: ::std::marker::PhantomData<()>,
628 ) -> (usize, (usize,__Symbol<'input>,usize), usize)
629 {
630 // Float = SignedInteger => ActionFn(6);
631 let __sym0 = __pop_Variant7(__symbols);
632 let __start = __sym0.0.clone();
633 let __end = __sym0.2.clone();
634 let __nt = super::__action6::<>(input, __sym0);
635 let __symbol = (__start, __Symbol::Variant3(__nt), __end);
636 (1, __symbol, 5)
637 }
638 pub(crate) fn __reduce9<
639 'input,
640 >(
641 input: &'input str,
642 __action: i8,
643 __lookahead_start: Option<&usize>,
644 __states: &mut ::std::vec::Vec<i8>,
645 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
646 _: ::std::marker::PhantomData<()>,
647 ) -> (usize, (usize,__Symbol<'input>,usize), usize)
648 {
649 // Float = Integer => ActionFn(7);
650 let __sym0 = __pop_Variant5(__symbols);
651 let __start = __sym0.0.clone();
652 let __end = __sym0.2.clone();
653 let __nt = super::__action7::<>(input, __sym0);
654 let __symbol = (__start, __Symbol::Variant3(__nt), __end);
655 (1, __symbol, 5)
656 }
657 pub(crate) fn __reduce10<
658 'input,
659 >(
660 input: &'input str,
661 __action: i8,
662 __lookahead_start: Option<&usize>,
663 __states: &mut ::std::vec::Vec<i8>,
664 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
665 _: ::std::marker::PhantomData<()>,
666 ) -> (usize, (usize,__Symbol<'input>,usize), usize)
667 {
668 // Integer = r#"[0-9]+"# => ActionFn(10);
669 let __sym0 = __pop_Variant0(__symbols);
670 let __start = __sym0.0.clone();
671 let __end = __sym0.2.clone();
672 let __nt = super::__action10::<>(input, __sym0);
673 let __symbol = (__start, __Symbol::Variant5(__nt), __end);
674 (1, __symbol, 6)
675 }
676 pub(crate) fn __reduce11<
677 'input,
678 >(
679 input: &'input str,
680 __action: i8,
681 __lookahead_start: Option<&usize>,
682 __states: &mut ::std::vec::Vec<i8>,
683 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
684 _: ::std::marker::PhantomData<()>,
685 ) -> (usize, (usize,__Symbol<'input>,usize), usize)
686 {
687 // Main = Preamp, Eq => ActionFn(1);
688 let __sym1 = __pop_Variant4(__symbols);
689 let __sym0 = __pop_Variant3(__symbols);
690 let __start = __sym0.0.clone();
691 let __end = __sym1.2.clone();
692 let __nt = super::__action1::<>(input, __sym0, __sym1);
693 let __symbol = (__start, __Symbol::Variant6(__nt), __end);
694 (2, __symbol, 7)
695 }
696 pub(crate) fn __reduce12<
697 'input,
698 >(
699 input: &'input str,
700 __action: i8,
701 __lookahead_start: Option<&usize>,
702 __states: &mut ::std::vec::Vec<i8>,
703 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
704 _: ::std::marker::PhantomData<()>,
705 ) -> (usize, (usize,__Symbol<'input>,usize), usize)
706 {
707 // Preamp = "Preamp:", Decibel => ActionFn(2);
708 let __sym1 = __pop_Variant3(__symbols);
709 let __sym0 = __pop_Variant0(__symbols);
710 let __start = __sym0.0.clone();
711 let __end = __sym1.2.clone();
712 let __nt = super::__action2::<>(input, __sym0, __sym1);
713 let __symbol = (__start, __Symbol::Variant3(__nt), __end);
714 (2, __symbol, 8)
715 }
716 pub(crate) fn __reduce13<
717 'input,
718 >(
719 input: &'input str,
720 __action: i8,
721 __lookahead_start: Option<&usize>,
722 __states: &mut ::std::vec::Vec<i8>,
723 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
724 _: ::std::marker::PhantomData<()>,
725 ) -> (usize, (usize,__Symbol<'input>,usize), usize)
726 {
727 // RawFloat = r#"-?[0-9]*\\.[0-9]+"# => ActionFn(8);
728 let __sym0 = __pop_Variant0(__symbols);
729 let __start = __sym0.0.clone();
730 let __end = __sym0.2.clone();
731 let __nt = super::__action8::<>(input, __sym0);
732 let __symbol = (__start, __Symbol::Variant3(__nt), __end);
733 (1, __symbol, 9)
734 }
735 pub(crate) fn __reduce14<
736 'input,
737 >(
738 input: &'input str,
739 __action: i8,
740 __lookahead_start: Option<&usize>,
741 __states: &mut ::std::vec::Vec<i8>,
742 __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
743 _: ::std::marker::PhantomData<()>,
744 ) -> (usize, (usize,__Symbol<'input>,usize), usize)
745 {
746 // SignedInteger = r#"-[0-9]+"# => ActionFn(9);
747 let __sym0 = __pop_Variant0(__symbols);
748 let __start = __sym0.0.clone();
749 let __end = __sym0.2.clone();
750 let __nt = super::__action9::<>(input, __sym0);
751 let __symbol = (__start, __Symbol::Variant7(__nt), __end);
752 (1, __symbol, 10)
753 }
754}
755pub use self::__parse__Main::MainParser;
756#[cfg_attr(rustfmt, rustfmt_skip)]
757mod __intern_token {
758 #![allow(unused_imports)]
759 use ::Filter;
760 use std::str::FromStr;
761 #[allow(unused_extern_crates)]
762 extern crate lalrpop_util as __lalrpop_util;
763 extern crate regex as __regex;
764 use std::fmt as __fmt;
765
766 #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
767 pub struct Token<'input>(pub usize, pub &'input str);
768 impl<'a> __fmt::Display for Token<'a> {
769 fn fmt(&self, formatter: &mut __fmt::Formatter) -> Result<(), __fmt::Error> {
770 __fmt::Display::fmt(self.1, formatter)
771 }
772 }
773
774 pub struct __MatcherBuilder {
775 regex_set: __regex::RegexSet,
776 regex_vec: Vec<__regex::Regex>,
777 }
778
779 impl __MatcherBuilder {
780 pub fn new() -> __MatcherBuilder {
781 let __strs: &[&str] = &[
782 "^((?u:\\-)?(?u:[0-9])*(?u:\\.)(?u:[0-9])+)",
783 "^((?u:\\-)(?u:[0-9])+)",
784 "^((?u:[0-9])+)",
785 "^((?u:;))",
786 "^((?u:GraphicEQ:))",
787 "^((?u:Preamp:))",
788 "^((?u:dB))",
789 ];
790 let __regex_set = __regex::RegexSet::new(__strs).unwrap();
791 let __regex_vec = vec![
792 __regex::Regex::new("^((?u:\\-)?(?u:[0-9])*(?u:\\.)(?u:[0-9])+)").unwrap(),
793 __regex::Regex::new("^((?u:\\-)(?u:[0-9])+)").unwrap(),
794 __regex::Regex::new("^((?u:[0-9])+)").unwrap(),
795 __regex::Regex::new("^((?u:;))").unwrap(),
796 __regex::Regex::new("^((?u:GraphicEQ:))").unwrap(),
797 __regex::Regex::new("^((?u:Preamp:))").unwrap(),
798 __regex::Regex::new("^((?u:dB))").unwrap(),
799 ];
800 __MatcherBuilder { regex_set: __regex_set, regex_vec: __regex_vec }
801 }
802 pub fn matcher<'input, 'builder>(&'builder self, s: &'input str) -> __Matcher<'input, 'builder> {
803 __Matcher {
804 text: s,
805 consumed: 0,
806 regex_set: &self.regex_set,
807 regex_vec: &self.regex_vec,
808 }
809 }
810 }
811
812 pub struct __Matcher<'input, 'builder> {
813 text: &'input str,
814 consumed: usize,
815 regex_set: &'builder __regex::RegexSet,
816 regex_vec: &'builder Vec<__regex::Regex>,
817 }
818
819 impl<'input, 'builder> Iterator for __Matcher<'input, 'builder> {
820 type Item = Result<(usize, Token<'input>, usize), __lalrpop_util::ParseError<usize,Token<'input>,&'static str>>;
821
822 fn next(&mut self) -> Option<Self::Item> {
823 let __text = self.text.trim_left();
824 let __whitespace = self.text.len() - __text.len();
825 let __start_offset = self.consumed + __whitespace;
826 if __text.is_empty() {
827 self.text = __text;
828 self.consumed = __start_offset;
829 None
830 } else {
831 let __matches = self.regex_set.matches(__text);
832 if !__matches.matched_any() {
833 Some(Err(__lalrpop_util::ParseError::InvalidToken {
834 location: __start_offset,
835 }))
836 } else {
837 let mut __longest_match = 0;
838 let mut __index = 0;
839 for __i in 0 .. 7 {
840 if __matches.matched(__i) {
841 let __match = self.regex_vec[__i].find(__text).unwrap();
842 let __len = __match.end();
843 if __len >= __longest_match {
844 __longest_match = __len;
845 __index = __i;
846 }
847 }
848 }
849 let __result = &__text[..__longest_match];
850 let __remaining = &__text[__longest_match..];
851 let __end_offset = __start_offset + __longest_match;
852 self.text = __remaining;
853 self.consumed = __end_offset;
854 Some(Ok((__start_offset, Token(__index, __result), __end_offset)))
855 }
856 }
857 }
858 }
859}
860pub use self::__intern_token::Token;
861
862#[allow(unused_variables)]
863fn __action0<
864 'input,
865>(
866 input: &'input str,
867 (_, __0, _): (usize, Filter, usize),
868) -> Filter
869{
870 (__0)
871}
872
873#[allow(unused_variables)]
874fn __action1<
875 'input,
876>(
877 input: &'input str,
878 (_, preamp, _): (usize, f64, usize),
879 (_, eq, _): (usize, (Vec<u32>, Vec<f64>), usize),
880) -> Filter
881{
882 Filter { preamp, frequencies: eq.0, coefficients: eq.1 }
883}
884
885#[allow(unused_variables)]
886fn __action2<
887 'input,
888>(
889 input: &'input str,
890 (_, _, _): (usize, &'input str, usize),
891 (_, __0, _): (usize, f64, usize),
892) -> f64
893{
894 (__0)
895}
896
897#[allow(unused_variables)]
898fn __action3<
899 'input,
900>(
901 input: &'input str,
902 (_, _, _): (usize, &'input str, usize),
903 (_, values, _): (usize, ::std::vec::Vec<(u32, f64)>, usize),
904 (_, end, _): (usize, (u32, f64), usize),
905) -> (Vec<u32>, Vec<f64>)
906{
907 {
908 let mut values = values;
909 values.push(end);
910 values.into_iter().unzip()
911 }
912}
913
914#[allow(unused_variables)]
915fn __action4<
916 'input,
917>(
918 input: &'input str,
919 (_, __0, _): (usize, f64, usize),
920 (_, _, _): (usize, &'input str, usize),
921) -> f64
922{
923 (__0)
924}
925
926#[allow(unused_variables)]
927fn __action5<
928 'input,
929>(
930 input: &'input str,
931 (_, __0, _): (usize, f64, usize),
932) -> f64
933{
934 (__0)
935}
936
937#[allow(unused_variables)]
938fn __action6<
939 'input,
940>(
941 input: &'input str,
942 (_, __0, _): (usize, i32, usize),
943) -> f64
944{
945 __0 as f64
946}
947
948#[allow(unused_variables)]
949fn __action7<
950 'input,
951>(
952 input: &'input str,
953 (_, __0, _): (usize, u32, usize),
954) -> f64
955{
956 __0 as f64
957}
958
959#[allow(unused_variables)]
960fn __action8<
961 'input,
962>(
963 input: &'input str,
964 (_, __0, _): (usize, &'input str, usize),
965) -> f64
966{
967 f64::from_str(__0).unwrap()
968}
969
970#[allow(unused_variables)]
971fn __action9<
972 'input,
973>(
974 input: &'input str,
975 (_, __0, _): (usize, &'input str, usize),
976) -> i32
977{
978 i32::from_str(__0).unwrap()
979}
980
981#[allow(unused_variables)]
982fn __action10<
983 'input,
984>(
985 input: &'input str,
986 (_, __0, _): (usize, &'input str, usize),
987) -> u32
988{
989 u32::from_str(__0).unwrap()
990}
991
992#[allow(unused_variables)]
993fn __action11<
994 'input,
995>(
996 input: &'input str,
997 (_, __0, _): (usize, (u32, f64), usize),
998) -> ::std::vec::Vec<(u32, f64)>
999{
1000 vec![__0]
1001}
1002
1003#[allow(unused_variables)]
1004fn __action12<
1005 'input,
1006>(
1007 input: &'input str,
1008 (_, v, _): (usize, ::std::vec::Vec<(u32, f64)>, usize),
1009 (_, e, _): (usize, (u32, f64), usize),
1010) -> ::std::vec::Vec<(u32, f64)>
1011{
1012 { let mut v = v; v.push(e); v }
1013}
1014
1015#[allow(unused_variables)]
1016fn __action13<
1017 'input,
1018>(
1019 input: &'input str,
1020 (_, __0, _): (usize, (u32, f64), usize),
1021 (_, _, _): (usize, &'input str, usize),
1022) -> (u32, f64)
1023{
1024 (__0)
1025}
1026
1027#[allow(unused_variables)]
1028fn __action14<
1029 'input,
1030>(
1031 input: &'input str,
1032 (_, __0, _): (usize, u32, usize),
1033 (_, __1, _): (usize, f64, usize),
1034) -> (u32, f64)
1035{
1036 (__0, __1)
1037}
1038
1039#[allow(unused_variables)]
1040fn __action15<
1041 'input,
1042>(
1043 input: &'input str,
1044 __0: (usize, u32, usize),
1045 __1: (usize, f64, usize),
1046 __2: (usize, &'input str, usize),
1047) -> (u32, f64)
1048{
1049 let __start0 = __0.0.clone();
1050 let __end0 = __1.2.clone();
1051 let __temp0 = __action14(
1052 input,
1053 __0,
1054 __1,
1055 );
1056 let __temp0 = (__start0, __temp0, __end0);
1057 __action13(
1058 input,
1059 __temp0,
1060 __2,
1061 )
1062}
1063
1064#[allow(unused_variables)]
1065fn __action16<
1066 'input,
1067>(
1068 input: &'input str,
1069 __0: (usize, &'input str, usize),
1070 __1: (usize, ::std::vec::Vec<(u32, f64)>, usize),
1071 __2: (usize, u32, usize),
1072 __3: (usize, f64, usize),
1073) -> (Vec<u32>, Vec<f64>)
1074{
1075 let __start0 = __2.0.clone();
1076 let __end0 = __3.2.clone();
1077 let __temp0 = __action14(
1078 input,
1079 __2,
1080 __3,
1081 );
1082 let __temp0 = (__start0, __temp0, __end0);
1083 __action3(
1084 input,
1085 __0,
1086 __1,
1087 __temp0,
1088 )
1089}
1090
1091#[allow(unused_variables)]
1092fn __action17<
1093 'input,
1094>(
1095 input: &'input str,
1096 __0: (usize, u32, usize),
1097 __1: (usize, f64, usize),
1098 __2: (usize, &'input str, usize),
1099) -> ::std::vec::Vec<(u32, f64)>
1100{
1101 let __start0 = __0.0.clone();
1102 let __end0 = __2.2.clone();
1103 let __temp0 = __action15(
1104 input,
1105 __0,
1106 __1,
1107 __2,
1108 );
1109 let __temp0 = (__start0, __temp0, __end0);
1110 __action11(
1111 input,
1112 __temp0,
1113 )
1114}
1115
1116#[allow(unused_variables)]
1117fn __action18<
1118 'input,
1119>(
1120 input: &'input str,
1121 __0: (usize, ::std::vec::Vec<(u32, f64)>, usize),
1122 __1: (usize, u32, usize),
1123 __2: (usize, f64, usize),
1124 __3: (usize, &'input str, usize),
1125) -> ::std::vec::Vec<(u32, f64)>
1126{
1127 let __start0 = __1.0.clone();
1128 let __end0 = __3.2.clone();
1129 let __temp0 = __action15(
1130 input,
1131 __1,
1132 __2,
1133 __3,
1134 );
1135 let __temp0 = (__start0, __temp0, __end0);
1136 __action12(
1137 input,
1138 __0,
1139 __temp0,
1140 )
1141}
1142
1143pub trait __ToTriple<'input, > {
1144 type Error;
1145 fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize),Self::Error>;
1146}
1147
1148impl<'input, > __ToTriple<'input, > for (usize, Token<'input>, usize) {
1149 type Error = &'static str;
1150 fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize),&'static str> {
1151 Ok(value)
1152 }
1153}
1154impl<'input, > __ToTriple<'input, > for Result<(usize, Token<'input>, usize),&'static str> {
1155 type Error = &'static str;
1156 fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize),&'static str> {
1157 value
1158 }
1159}
diff --git a/src/parsing/mod.rs b/src/parsing/mod.rs
index 4454b04..99f7caa 100644
--- a/src/parsing/mod.rs
+++ b/src/parsing/mod.rs
@@ -1,5 +1,8 @@
1#[allow(clippy)] 1lalrpop_mod!(
2pub mod equalizer_apo; 2 #[allow(clippy)]
3 equalizer_apo,
4 "/parsing/equalizer_apo.rs"
5);
3 6
4pub use self::equalizer_apo::MainParser as EqualizerApoParser; 7pub use self::equalizer_apo::MainParser as EqualizerApoParser;
5 8