Compare commits

...

192 Commits

Author SHA1 Message Date
582fdb8fe2
Add test case for Western Australia STV 2023-06-12 15:53:41 +10:00
4cf9053681
Implement --surplus-assume-total
This replaces and extends the former --subtract-nontransferable option

#4
2023-06-11 21:47:55 +10:00
c140ef0a90
Fix rounding of subtransfers by parcel
Was erroneously segmenting transfers by outgoing parcel rather than incoming parcel
2023-06-11 21:01:29 +10:00
9fc0457844
Fix typo in documentation 2023-06-11 15:56:17 +10:00
74d8829fbd
Modify WA Legislative Council STV preset to conform to WAEC's implementation 2023-06-11 15:31:55 +10:00
ed44f4f8a2
Add documentation for Victorian Legislative Council STV validation 2023-02-19 18:03:27 +11:00
f488d50f4d
Update description of presets 2023-02-08 21:38:52 +11:00
ba6ad8964f
Add preset and test for Victorian Legislative Council STV 2023-02-08 21:38:52 +11:00
eaf864062d
Implement --exclusion first_prefs_then_by_value 2023-02-07 21:12:26 +11:00
0ee5fd3285
Update to prettytable 0.10.0
prettytable 0.8.0 has a bug leading to arithmetic overflow/segfault on latest Rust
2023-02-01 18:26:45 +11:00
cece60dd69
Reduce unnecessary verbosity when only 1 vacancy 2023-02-01 18:26:45 +11:00
ab0ec44049
Add test cases for 2021 Minneapolis elections 2022-11-20 18:59:21 +11:00
b317affd08
Use --round-subtransfers per_ballot and --round-values 4 for Minneapolis STV 2022-11-20 18:59:02 +11:00
1a1153b666
Defer surplus distribution if not affecting bulk exclusion, even if otherwise affecting trailing 2 candidates 2022-11-20 18:58:32 +11:00
f7f9727146
Allow escaped quotation marks in BLT parser 2022-11-20 18:57:30 +11:00
d068ce6137
Add draft functional specifications 2022-11-06 21:50:25 +11:00
131d32c781
Disallow --no-immediate-elect with --quota-mode ers97/ers76 2022-11-06 14:57:19 +11:00
631d4e770a
Hide CandidateMap iterator implementation details 2022-11-06 14:45:35 +11:00
1a57fba093
CLI HTML output: Correctly generate print view for other report styles 2022-08-27 01:04:10 +10:00
fafb093c1a
Allow print from CLI HTML output 2022-08-27 00:58:51 +10:00
44ea09d7d3
Allow customising report style in CLI HTML output 2022-08-26 13:50:54 +10:00
815055d6e6
Initial implementation of HTML output on CLI 2022-08-26 02:27:25 +10:00
6bb127a124
Precompute Ballot::has_equal_rankings at parse time
Before: 5.3943 +- 0.0287
After: 5.27661 +- 0.00472
2022-08-25 21:49:50 +10:00
254c04b574
Update nomenclature for van der Craats (‘Wright’) STV 2022-08-23 18:37:42 +10:00
cb1cc5fb72
Clean up utility files 2022-08-22 19:19:22 +10:00
395de771fa
Tidying up
Refactor STV options implementations into separate file
Fix/update documentation
2022-08-22 11:35:20 +10:00
55f2e8816a
Update scripts 2022-08-21 07:31:32 +10:00
823f06a32b
Refactor calculation of totals, etc. 2022-08-21 07:20:21 +10:00
6ff111054c
Profile using binary input 2022-08-21 06:14:34 +10:00
3902c37768
Refactor CandidateMap 2022-08-21 06:02:06 +10:00
876be9c55a
Write more efficient implementation for CandidateMap which does not rely on hashing 2022-08-21 05:24:54 +10:00
4ad02c052c
Refactor HashMap for Candidates into dedicated struct (CandidateMap) 2022-08-21 03:57:37 +10:00
af4c6336aa
Utils for benchmarking and profiling 2022-08-21 03:56:54 +10:00
974a56dffd
Improve performance of Candidate in HashMap by simplifying equality check 2022-08-20 23:39:15 +10:00
422a198cf5
Use NoHashHasher for Candidate HashMaps to improve performance 2022-08-20 23:25:16 +10:00
61b22b388d
Remove unnecessary usage of HashMap.contains_key 2022-08-20 22:43:57 +10:00
9a4af322ca
Avoid more allocations in fold 2022-08-20 22:33:48 +10:00
2bce8cfc3f
Avoid String allocations in BLT parser 2022-08-19 00:16:29 +10:00
35104055d9
Avoid excess allocations during fold operations 2022-08-18 23:55:39 +10:00
ee7ac064c7
Improve performance of realise_equal_rankings 2022-08-18 00:15:44 +10:00
e825ca1491
Update for Rust 1.62
Add Cargo profile for profiling
2022-08-18 00:15:33 +10:00
f187975601
--no-immediate-elect requires --surplus-order by_size 2022-07-02 23:46:02 +10:00
566cdeb185
Permit --surplus meek with --quota-mode static 2022-06-18 23:07:00 +10:00
2f6614c0c1
Update wasm-bindgen 2022-06-18 22:44:32 +10:00
8d16f55289
Update for clap stable 2022-06-18 22:36:00 +10:00
82e90a0e10
Update documentation 2022-06-18 02:02:00 +10:00
384dde9c52
--subtract-nontransferable requires --surplus wig 2022-06-18 02:00:07 +10:00
2987eca0c3
Do not defer a surplus distribution if it exactly equals the difference between the 2 trailing candidates (as, depending on tie-breaking rules, this could change the order of exclusion) 2022-06-18 01:59:29 +10:00
8cc694e609
Cosmetic improvements
Hide transfers column in transposed report if no transfers
Report "Rollback complete" at end of stage when completed
2022-04-21 21:56:21 +10:00
8a0cd9b0a9
Start a glossary 2022-04-20 20:16:32 +10:00
c2621b2965
Improve messages for --constraint-mode repeat_count 2022-04-20 20:12:50 +10:00
4aafecb857
Use "ballots" consistently vs "ballot papers" 2022-04-20 20:03:20 +10:00
f0e3b02051
Autodetect when to normalise ballots, remove explicit --normalise-ballots 2022-04-20 19:54:58 +10:00
03af86733e
Initial implementation of --constraint-mode repeat_count 2022-04-20 19:42:20 +10:00
df9223ebe6
Implement --round-subtransfers by_parcel for NSW Local Government rules 2022-03-27 21:33:55 +11:00
26d45cac50
Implement --subtract-nontransferable for NSW Local Government rules 2022-03-25 02:46:30 +11:00
4119a293b1
Fix bug in c5d6b8d - by_value inadvertently changed in --exclusion 2022-03-24 02:53:27 +11:00
495ac5b514
Document NSW Local Government STV validation 2022-03-23 02:04:24 +11:00
8af0fa1178
Complete implementation and tests for NSW Local Government STV 2022-03-23 01:55:02 +11:00
c5d6b8d460
Refactor implementation of --sum-surplus-transfers -> --round-subtransfers in preparation for NSW Local Gov't STV 2022-03-23 00:35:00 +11:00
d94549dc42
Initial implementation of NSW Local Government STV 2022-03-21 21:15:17 +11:00
9fcb643fe5
Avoid wrapping candidate names/statuses in HTML report 2022-03-14 22:27:58 +11:00
67bf6f33d8
Update documentation 2022-03-11 15:58:32 +11:00
544d7fea5d
Update dates 2022-03-11 15:44:28 +11:00
6968df5c9b
Fix incorrect crediting of votes when surplus votes transferred at values received
Many thanks to J Groves for pointing this out
2022-03-11 13:33:28 +11:00
f5114bccda
Rename docs files to avoid reserved Windows paths 2022-01-04 18:26:15 +11:00
6304e1128a
Validate well-formedness of constraints, better constraint errors 2021-10-29 23:33:27 +11:00
ba82828046
Fix web UI crash when tie requires manual intervention in first stage 2021-10-29 20:28:50 +11:00
5a652cb466
Improve online documentation 2021-10-28 16:28:53 +11:00
116d4c385c
Build docs as HTML 2021-10-28 01:23:55 +11:00
63a649405b
Add link to home page 2021-10-28 00:30:55 +11:00
15614a4e8f
rust-clippy linting 2021-10-28 00:30:55 +11:00
69bc30b333
Downgrade some FIXMEs 2021-10-26 00:55:49 +11:00
0c97755813
Add CSP parsing tests 2021-10-26 00:55:42 +11:00
be8a6e83fc
Suppress unused import warning in WebAssembly 2021-10-26 00:55:31 +11:00
e867e85142
Update rustfilt path 2021-10-26 00:55:04 +11:00
f120cf2eee
Make DynNum thread-safe 2021-10-19 15:31:22 +11:00
75ec78b1a6
Add test cases for DynNum (single-threaded only) 2021-10-19 15:27:11 +11:00
414a1482c3
Implement dynamic dispatch for different number types 2021-10-19 14:52:08 +11:00
5a53574366
Allow opting out of building default wasm bindings 2021-10-18 18:06:42 +11:00
e78d06289a
Return Result from CSP parse_reader, better error messages 2021-10-17 17:18:14 +11:00
71dc671c34
Build CSV parser for WebAssembly 2021-10-17 16:34:15 +11:00
46654f8c5a
Implement --omit-informal for opentally convert 2021-10-17 16:32:35 +11:00
3ceaf67091
Implement stricter validation modes for CSP input 2021-09-30 00:48:57 +10:00
047a53d0d9
Ignore --round-surplus-fractions with Hare method 2021-09-27 19:19:33 +10:00
93cb72c33a
Update terminology and remove "stratify (floor)" support
Cincinnati -> Inclusive Hare (previous usage was erroneous/nonstandard)
Every n-th ballot -> Cincinnati
Remove "stratify (floor)" as it is not in contemporary use
2021-09-27 19:02:30 +10:00
0506283ae4
Add test case (Dail-like rules) from Grey-Fitzgerald ERS booklet 2021-09-26 02:27:50 +10:00
cf75943829
Fixes to edge cases in stratify (LR) sample method 2021-09-26 02:27:37 +10:00
2f7abf9f0a
Fix print view for votes (transposed) report 2021-09-26 02:25:44 +10:00
3a4e53e1f0
Implement Dáil Éireann STV 2021-09-14 23:13:45 +10:00
a641b97d1f
More work on unit/integration tests 2021-09-14 02:27:35 +10:00
f12db205b9
Make Fixed, GuardedFixed thread-safe 2021-09-13 04:33:36 +10:00
e1e347c255
More unit/integration tests 2021-09-13 03:43:17 +10:00
b05e0e06f2
Adjust formatting of detailed transfers table in web UI 2021-09-13 03:42:53 +10:00
59f79444e8
Show only continuing candidates in detailed transfers table 2021-09-12 00:24:48 +10:00
2c3470b91c
Hide detailed transfers link in print view 2021-09-11 21:17:35 +10:00
c1ccf54501
Don't reapply wasm-bindgen/wasm-opt if no changes 2021-09-11 21:17:35 +10:00
df1b2f7bdc
Implement detailed transfers in web UI 2021-09-11 21:08:36 +10:00
9817d6c199
Implement --transfers-detail 2021-09-11 18:42:15 +10:00
056242514d
Implement TransferTable for surpluses (WIP) 2021-09-11 02:43:11 +10:00
fbdc32ba30
Implement TransferTable for exclusions (WIP) 2021-09-11 01:19:38 +10:00
99dbbcd5d5
Hide votes required for election in Meek STV 2021-09-10 02:41:40 +10:00
c9b189fefe
Update quota/VRE in certain rare cases 2021-09-10 01:42:42 +10:00
de19324d2c
Report vote required for election in relation to early bulk election 2021-09-10 01:32:31 +10:00
473c8bcb39
Test cases comparing PRSA 1977 results with count.nl at https://gitlab.com/RunasSudo/prsa_count 2021-09-10 01:05:37 +10:00
4dd748186f
Fix logic error with CSV reporting of nontransferables with invalid votes 2021-09-10 00:51:09 +10:00
d222207318
Bundle all integration tests in single binary
Reduces test build time from ~2m30s to ~30s
2021-09-10 00:02:52 +10:00
523b039d2a
CSV output for bulk election 2021-09-09 13:46:10 +10:00
ab3067566d
Fix bug attempting to defer surplus with 0 or 1 continuing candidates
Add regression test
2021-09-09 13:36:27 +10:00
3b41eae11b
Implement eSTV-style CSV report 2021-09-09 04:07:18 +10:00
260dee1bb5
Fix bugs
Fix bug excluding-by-value/source candidates with no votes
Fix bug electing too many candidates if more reach the quota than vacancies remain
Add regression test
2021-09-09 01:24:50 +10:00
e4bfe45f49
Display up to 5 names only in web UI header, separate with line breaks 2021-09-06 02:43:33 +10:00
18c974117e
(cont.) Take num_to_exclude into consideration for bulk exclusion 2021-09-05 23:13:37 +10:00
09c4a375a7
Better error messages when insufficient candidates to fill vacancies 2021-09-05 22:53:59 +10:00
0a7189e54f
Complete ccc3266 2021-09-05 00:13:29 +10:00
2475b42056
Calculate loss by fraction introduced by minivoters with equal rankings 2021-09-05 00:07:59 +10:00
90971e976a
Fix --round-votes being ignored in first stage 2021-09-04 23:54:28 +10:00
e3ca9fac47
Refactor stv::preprocess_election 2021-09-04 22:46:29 +10:00
ccc3266d2c
Add signs to Votes display, change default to Votes (transposed) 2021-09-04 22:28:02 +10:00
a24ac3658a
Implement support for equal rankings 2021-09-04 02:30:01 +10:00
b0f869bf02
Initial framework for equal rankings 2021-09-04 01:56:04 +10:00
27ead09960
Complete BLT writer and implement tests for file conversions 2021-09-02 22:35:10 +10:00
e9e1c63c9c
Implement serialised binary format 2021-09-02 17:17:45 +10:00
31cdf3d99d
Add validation test for Church of England rules 2021-08-26 22:13:23 +10:00
cb97a44b73
Update documentation 2021-08-23 14:26:39 +10:00
59c1da794e
Implement transposed votes report 2021-08-22 17:53:55 +10:00
61e4eefca3
convert: Allow --seats to override input file 2021-08-21 01:19:54 +10:00
88ab06d633
Add subcommand for BLT/CSP file conversion 2021-08-20 02:29:47 +10:00
e7bae376e9
Fix error with forwards/backwards tiebreaking on first stage 2021-08-20 02:06:45 +10:00
85b695c133
Improve performance of Scottish STV
Remove reliance on normalising ballot papers
2021-08-19 20:11:42 +10:00
b9e66fde73
Correct number of ballot papers reported to be transferred in exclusive Gregory method 2021-08-17 01:56:43 +10:00
baffdce9e3
Implement print view for ballots+votes report 2021-08-17 01:37:40 +10:00
8a3361f20d
Implement papers+votes report 2021-08-17 01:14:05 +10:00
c9faa2ef01
Update documentation 2021-08-16 18:47:38 +10:00
94787e7677
Store vote values at the parcel level rather than the vote level
~50% increase in performance
2021-08-16 00:46:05 +10:00
7341522ba8
Update web UI defaults 2021-08-11 21:34:42 +10:00
eb3c7d0f53
Fix STVOptions::describe for --min-threshold 2021-08-09 23:27:58 +10:00
b1f2e42ce6
Update documentation 2021-08-09 19:56:51 +10:00
9f1476da63
Complete ERS76 implementation and add test case 2021-08-09 19:50:49 +10:00
5024496f61
Add new ERS97 test 2021-08-09 19:02:51 +10:00
764ebd98e6
Various tidyups
Use "Droop" as default quota (since same as "Droop (exact)" when quota not rounded)
Rename ers97.blt
Update documentation
2021-08-09 17:58:05 +10:00
46e895ee5a
Correct handling of exhausted votes during random sample surplus distribution 2021-08-09 00:17:14 +10:00
ae0d1d8411
Implement dynamic quotas 2021-08-08 21:41:10 +10:00
ee1008b509
Prepare for dynamic quota: independent flag for completion of surplus transfers/exclusions 2021-08-08 21:35:03 +10:00
0581571440
Update documentation 2021-08-08 18:59:36 +10:00
dc78692c72
Use new names for STVOptions::describe 2021-08-07 23:27:11 +10:00
b58922c57b
WIP: no immediate election? 2021-08-07 22:34:55 +10:00
7eb3b46628
Remove Minneapolis STV preset for now
Minneapolis STV is complicated by unusual procedures which are not currently implemented
2021-08-06 14:36:09 +10:00
f706d7423b
Fix interaction between --exclusion parcels_by_order and --min-threshold when excluding candidates with 0 votes 2021-08-06 01:33:31 +10:00
0af8d8a4d6
Update documentation on Minneapolis STV 2021-08-06 01:33:04 +10:00
8a4219303a
Implement Minneapolis STV 2021-08-05 21:47:34 +10:00
429191dc81
With --sample-per-ballot, terminate immediately on electing the required number 2021-08-05 20:23:54 +10:00
33594c110e
Implement stratified and by-order sampling 2021-08-05 18:41:39 +10:00
f3e4071886
Refactor tests specification using builder pattern 2021-08-05 01:13:54 +10:00
0800701960
Implement configurable --sample-per-ballot 2021-08-04 13:46:32 +10:00
0efc1e6eab
Complete implementation of Cambridge STV
Implement --min-threshold
Add test
2021-08-03 23:42:59 +10:00
f182ca02bd
Implement Cambridge STV - Cincinnati/Hare methods of surpluses 2021-08-03 18:38:45 +10:00
6da51837a5
Rename --round-tvs to --round-surplus-fractions and --round-weights to --round-values 2021-08-03 16:46:21 +10:00
77fe5effb2
Update documentation on bulk exclusion 2021-08-03 16:44:26 +10:00
c4fab9dc75
Correct description of backwards tie breaking algorithm 2021-08-02 20:14:03 +10:00
a2915b034b
Fix bug with attempted bulk exclusion during exclusion of doomed candidates 2021-08-02 00:24:41 +10:00
ea8c452737
Prevent bulk election and bulk exclusion violating constraints 2021-08-02 00:10:17 +10:00
116ff39fa5
Change tiebreaking prompt according to nature of tie 2021-07-31 17:51:09 +10:00
32e89312fa
Show stage progress during tie that occurs in the middle of a stage 2021-07-31 17:42:33 +10:00
83d0a9bb80
Better error messages 2021-07-31 15:24:23 +10:00
bfeec6f839
Give information on BLT syntax errors 2021-07-29 17:34:34 +10:00
3801d30527
Switch to handwritten BLT parser 2021-07-29 03:24:51 +10:00
470f1e550e
Simplify stack unwinding logic 2021-07-28 16:03:34 +10:00
49feb09bf8
Prefer election by quota/VRE to early bulk election 2021-07-28 00:12:57 +10:00
a5a61731b5
Use Asyncify to process ties in web UI 2021-07-27 23:31:37 +10:00
a64110b6a1
Update documentation 2021-07-26 18:50:51 +10:00
5f48a88bbe
Validated against 2019 NSW Senate election
Disable bulk election for Senate STV
Update documentation
2021-07-23 20:30:14 +10:00
efbcfd7f6c
Simply BLT grammar specification 2021-07-23 17:07:03 +10:00
4312bf89f6
Tweak layout of presets menu 2021-07-23 17:00:45 +10:00
e3419b6462
Add comments to supplied BLT files 2021-07-23 16:58:46 +10:00
cca097f943
Use Pest-based parser for BLT files
Support comments, optional newlines, etc.
2021-07-23 16:45:54 +10:00
3b8ccd097e
Extend early bulk election to multiple vacancies if the leading candidates cannot be overtaken 2021-07-23 01:38:37 +10:00
4690c32607
Fix unnecessary recursion in ERS97 algorithm 2021-07-23 00:42:15 +10:00
65b1d8e42b
Fix "Ex" display in web UI 2021-07-23 00:10:53 +10:00
85eda02d4d
Make stage number link to comment 2021-07-23 00:04:43 +10:00
bea51611b0
Implement Australian Capital Territory STV 2021-07-22 20:31:06 +10:00
12635decec
Use rational numbers/more decimal places in presets
Previous settings introduced rounding error in transfer values leading to incorrect results in some circumstances
2021-07-22 20:30:07 +10:00
3ea1eef7c5
Implement WA STV and update documentation 2021-07-22 00:41:20 +10:00
2ef7bf24f2
Correctly compute vote required for election when using different quotas/quota criteria 2021-07-21 13:43:16 +10:00
b5ee76f159
Further aggressive early bulk election 2021-07-21 10:59:06 +10:00
ed4a86e699
More aggressive early bulk election 2021-07-21 00:46:32 +10:00
a97ee591e5
Tweak dropdown formatting 2021-07-21 00:44:22 +10:00
11496a133c
Use custom dropdown box for presets 2021-07-20 14:32:08 +10:00
f80875b583
Implement --exclusion by_source 2021-07-19 23:15:17 +10:00
7f16090395
Fix crash on attempting segmented exclusion of candidate with no votes 2021-07-19 18:35:23 +10:00
d144ab0cb4
Implement ERS76 rules 2021-07-18 21:14:37 +10:00
bc8ed9a7e0
Add ERS73 preset 2021-07-16 17:04:20 +10:00
250 changed files with 143821 additions and 3482 deletions

15
.gitignore vendored
View File

@ -1,3 +1,16 @@
/target
/html/opentally.js
/html/opentally_bg.wasm
/html/opentally_*.wasm
/homepage/_news.html
# Functional specifications build products
/docs/FnSpecs.*
!/docs/FnSpecs.tex
# Jekyll
/homepage/_site
/homepage/.sass-cache
/homepage/.jekyll-cache
/homepage/.jekyll-metadata
/homepage/vendor

636
Cargo.lock generated
View File

@ -1,11 +1,24 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "adler"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
name = "ahash"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98"
dependencies = [
"getrandom",
"once_cell",
"version_check",
]
[[package]]
name = "aho-corasick"
version = "0.7.18"
@ -15,6 +28,18 @@ dependencies = [
"memchr",
]
[[package]]
name = "anyhow"
version = "1.0.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1"
[[package]]
name = "arrayvec"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
[[package]]
name = "assert_cmd"
version = "1.0.5"
@ -74,12 +99,39 @@ version = "3.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631"
[[package]]
name = "bytecheck"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb738a1e65989ecdcd5bba16079641bd7209688fa546e1064832fd6e012fd32a"
dependencies = [
"bytecheck_derive",
"ptr_meta",
]
[[package]]
name = "bytecheck_derive"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3b4dff26fdc9f847dab475c9fec16f2cba82d5aa1f09981b87c44520721e10a"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "byteorder"
version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]]
name = "cc"
version = "1.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
[[package]]
name = "cfg-if"
version = "0.1.10"
@ -94,22 +146,23 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clap"
version = "3.0.0-beta.2"
source = "git+https://github.com/clap-rs/clap?branch=master#65b3892ef6c1ddf0cf837c76d164b8182103fa5d"
version = "3.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d53da17d37dba964b9b3ecb5c5a1f193a2762c700e6829201e645b9381c99dc7"
dependencies = [
"bitflags",
"clap_derive",
"clap_lex",
"indexmap",
"lazy_static",
"os_str_bytes",
"once_cell",
"textwrap",
"vec_map",
]
[[package]]
name = "clap_derive"
version = "3.0.0-beta.2"
source = "git+https://github.com/clap-rs/clap?branch=master#65b3892ef6c1ddf0cf837c76d164b8182103fa5d"
version = "3.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c11d40217d16aee8508cc8e5fde8b4ff24639758608e5374e731b53f85749fb9"
dependencies = [
"heck",
"proc-macro-error",
@ -118,6 +171,15 @@ dependencies = [
"syn",
]
[[package]]
name = "clap_lex"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5538cd660450ebeb4234cfecf8f2284b844ffc4c50531e66d584ad5b91293613"
dependencies = [
"os_str_bytes",
]
[[package]]
name = "console_error_panic_hook"
version = "0.1.6"
@ -181,14 +243,81 @@ dependencies = [
]
[[package]]
name = "derive_more"
version = "0.99.14"
name = "darling"
version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cc7b9cef1e351660e5443924e4f43ab25fbbed3e9a5f052df3677deb4d6b320"
checksum = "5f2c43f534ea4b0b049015d00269734195e6d3f0f6635cb692251aca6f9f8b3c"
dependencies = [
"darling_core",
"darling_macro",
]
[[package]]
name = "darling_core"
version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e91455b86830a1c21799d94524df0845183fa55bafd9aa137b01c7d1065fa36"
dependencies = [
"fnv",
"ident_case",
"proc-macro2",
"quote",
"strsim",
"syn",
]
[[package]]
name = "darling_macro"
version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29b5acf0dea37a7f66f7b25d2c5e93fd46f8f6968b1a5d7a3e02e97768afc95a"
dependencies = [
"darling_core",
"quote",
"syn",
]
[[package]]
name = "derive_builder"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d13202debe11181040ae9063d739fa32cfcaaebe2275fe387703460ae2365b30"
dependencies = [
"derive_builder_macro",
]
[[package]]
name = "derive_builder_core"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "66e616858f6187ed828df7c64a6d71720d83767a7f19740b2d1b6fe6327b36e5"
dependencies = [
"darling",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "derive_builder_macro"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58a94ace95092c5acb1e97a7e846b310cfbd499652f72297da7493f618a98d73"
dependencies = [
"derive_builder_core",
"syn",
]
[[package]]
name = "derive_more"
version = "0.99.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40eebddd2156ce1bb37b20bbe5151340a31828b1f2d22ba4141f3531710e38df"
dependencies = [
"convert_case",
"proc-macro2",
"quote",
"rustc_version",
"syn",
]
@ -207,6 +336,27 @@ dependencies = [
"generic-array",
]
[[package]]
name = "dirs-next"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
dependencies = [
"cfg-if 1.0.0",
"dirs-sys-next",
]
[[package]]
name = "dirs-sys-next"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
dependencies = [
"libc",
"redox_users",
"winapi",
]
[[package]]
name = "doc-comment"
version = "0.3.3"
@ -219,6 +369,33 @@ version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
[[package]]
name = "encode_unicode"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
[[package]]
name = "errno"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
dependencies = [
"errno-dragonfly",
"libc",
"winapi",
]
[[package]]
name = "errno-dragonfly"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
dependencies = [
"cc",
"libc",
]
[[package]]
name = "flate2"
version = "1.0.20"
@ -240,6 +417,12 @@ dependencies = [
"num-traits",
]
[[package]]
name = "fnv"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]]
name = "generic-array"
version = "0.14.4"
@ -250,6 +433,17 @@ dependencies = [
"version_check",
]
[[package]]
name = "getrandom"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
dependencies = [
"cfg-if 1.0.0",
"libc",
"wasi",
]
[[package]]
name = "git-version"
version = "0.3.4"
@ -289,12 +483,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
[[package]]
name = "heck"
version = "0.3.2"
name = "hashbrown"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac"
checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
dependencies = [
"unicode-segmentation",
"ahash",
]
[[package]]
name = "heck"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
[[package]]
name = "hermit-abi"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
dependencies = [
"libc",
]
[[package]]
name = "html-escape"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "816ea801a95538fc5f53c836697b3f8b64a9d664c4f0b91efe1fe7c92e4dbcb7"
dependencies = [
"utf8-width",
]
[[package]]
@ -310,6 +528,12 @@ dependencies = [
"static_assertions",
]
[[package]]
name = "ident_case"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
[[package]]
name = "indexmap"
version = "1.6.2"
@ -317,7 +541,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3"
dependencies = [
"autocfg",
"hashbrown",
"hashbrown 0.9.1",
]
[[package]]
name = "io-lifetimes"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e"
dependencies = [
"libc",
"windows-sys",
]
[[package]]
name = "is-terminal"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189"
dependencies = [
"hermit-abi",
"io-lifetimes",
"rustix",
"windows-sys",
]
[[package]]
@ -352,9 +598,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.95"
version = "0.2.139"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "789da6d93f1b866ffe175afc5322a4d76c038605a1c3319bb57b06967ca98a36"
checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
[[package]]
name = "linux-raw-sys"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
[[package]]
name = "log"
@ -403,6 +655,12 @@ dependencies = [
"rawpointer",
]
[[package]]
name = "nohash-hasher"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
[[package]]
name = "normalize-line-endings"
version = "0.3.0"
@ -411,9 +669,9 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
[[package]]
name = "num-bigint"
version = "0.4.0"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e0d047c1062aa51e256408c560894e5251f08925980e53cf1aa5bd00eec6512"
checksum = "74e768dff5fb39a41b3bcd30bb25cf989706c90d028d1ad71971987aa309d535"
dependencies = [
"autocfg",
"num-integer",
@ -460,6 +718,12 @@ dependencies = [
"autocfg",
]
[[package]]
name = "once_cell"
version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225"
[[package]]
name = "opaque-debug"
version = "0.3.0"
@ -470,33 +734,40 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
name = "opentally"
version = "0.1.0"
dependencies = [
"anyhow",
"assert_cmd",
"clap",
"console_error_panic_hook",
"csv",
"derive_builder",
"derive_more",
"flate2",
"git-version",
"html-escape",
"ibig",
"itertools",
"js-sys",
"ndarray",
"nohash-hasher",
"num-bigint",
"num-rational",
"num-traits",
"paste",
"predicates",
"prettytable-rs",
"rkyv",
"rug",
"sha2",
"utf8-chars",
"wasm-bindgen",
"xmltree",
]
[[package]]
name = "os_str_bytes"