diff --git a/Cargo.lock b/Cargo.lock index eb9cbdd..9fb6171 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -174,22 +174,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", @@ -198,6 +199,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" @@ -507,12 +517,9 @@ dependencies = [ [[package]] name = "heck" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" -dependencies = [ - "unicode-segmentation", -] +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" [[package]] name = "hermit-abi" @@ -703,9 +710,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.8.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" +checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225" [[package]] name = "opaque-debug" @@ -747,9 +754,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "3.1.0" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6acbef58a60fe69ab50510a55bc8cdd4d6cf2283d27ad338f54cb52747a9cf2d" +checksum = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa" [[package]] name = "paste" @@ -841,11 +848,11 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" [[package]] name = "proc-macro2" -version = "1.0.27" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" +checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f" dependencies = [ - "unicode-xid", + "unicode-ident", ] [[package]] @@ -1070,13 +1077,13 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" -version = "1.0.72" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82" +checksum = "0748dd251e24453cb8717f0354206b91557e4ec8703673a4b30208f2abaf1ebf" dependencies = [ "proc-macro2", "quote", - "unicode-xid", + "unicode-ident", ] [[package]] @@ -1092,9 +1099,9 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.13.4" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd05616119e612a8041ef58f2b578906cc2531a6069047ae092cfb86a325d835" +checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" [[package]] name = "treeline" @@ -1115,10 +1122,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" [[package]] -name = "unicode-segmentation" -version = "1.7.1" +name = "unicode-ident" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" +checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c" [[package]] name = "unicode-width" @@ -1126,12 +1133,6 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" -[[package]] -name = "unicode-xid" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" - [[package]] name = "utf8-chars" version = "1.0.2" @@ -1147,12 +1148,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cf7d77f457ef8dfa11e4cd5933c5ddb5dc52a94664071951219a97710f0a32b" -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - [[package]] name = "version_check" version = "0.9.3" diff --git a/Cargo.toml b/Cargo.toml index 4df5fba..6722cd5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,9 +44,7 @@ utf8-chars = "1.0.2" xmltree = "0.10.3" [target.'cfg(not(target_arch = "wasm32"))'.dependencies.clap] -#version = "3.0.0-beta.4" # proc-macro2 version conflict with rkyv -git = "https://github.com/clap-rs/clap" -branch = "master" +version = "3.2.5" default-features = false features = ["std", "derive"] diff --git a/src/cli/convert.rs b/src/cli/convert.rs index 18330ed..29f7279 100644 --- a/src/cli/convert.rs +++ b/src/cli/convert.rs @@ -20,12 +20,12 @@ use crate::numbers::Rational; use crate::parser; use crate::writer; -use clap::{AppSettings, Clap}; +use clap::{AppSettings, Parser}; use std::fs::File; /// Convert between different ballot data formats -#[derive(Clap)] +#[derive(Parser)] #[clap(setting=AppSettings::DeriveDisplayOrder)] pub struct SubcmdOptions { /// Path to the input data file diff --git a/src/cli/stv.rs b/src/cli/stv.rs index 6edbe5d..35ea96f 100644 --- a/src/cli/stv.rs +++ b/src/cli/stv.rs @@ -22,7 +22,7 @@ use crate::parser::{bin, blt}; use crate::stv::{self, STVOptions}; use crate::ties; -use clap::{AppSettings, Clap}; +use clap::{AppSettings, Parser}; use itertools::Itertools; use std::cmp::max; @@ -31,7 +31,7 @@ use std::io::{self, BufRead}; use std::ops; /// Count a single transferable vote (STV) election -#[derive(Clap)] +#[derive(Parser)] #[clap(setting=AppSettings::DeriveDisplayOrder)] pub struct SubcmdOptions { // ---------------- @@ -102,7 +102,7 @@ pub struct SubcmdOptions { // -- STV variants -- /// Tie-breaking method - #[clap(help_heading=Some("STV VARIANTS"), short='t', long, possible_values=&["forwards", "backwards", "random", "prompt"], default_value="prompt", value_name="methods")] + #[clap(help_heading=Some("STV VARIANTS"), short='t', long, multiple_values=true, possible_values=&["forwards", "backwards", "random", "prompt"], default_value="prompt", value_name="methods")] ties: Vec, /// Random seed to use with --ties random diff --git a/src/main.rs b/src/main.rs index 3be616e..4a33ab3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,10 +19,10 @@ use opentally::cli; -use clap::Clap; +use clap::Parser; /// Open-source election vote counting -#[derive(Clap)] +#[derive(Parser)] #[clap(name="OpenTally", version=opentally::VERSION)] struct Opts { #[clap(subcommand)] @@ -30,7 +30,7 @@ struct Opts { } #[allow(clippy::large_enum_variant)] -#[derive(Clap)] +#[derive(Parser)] enum Command { Convert(cli::convert::SubcmdOptions), Stv(cli::stv::SubcmdOptions),