diff --git a/Cargo.lock b/Cargo.lock index a96d16a..cc09f71 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -96,30 +96,28 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "3.0.0-beta.2" +version = "3.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd1061998a501ee7d4b6d449020df3266ca3124b941ec56cf2005c3779ca142" +checksum = "d2dbdf4bdacb33466e854ce889eee8dfd5729abf7ccd7664d0a2d60cd384440b" dependencies = [ "atty", "bitflags", "clap_derive", + "clap_lex", "indexmap", "lazy_static", - "os_str_bytes", "strsim", "termcolor", "textwrap", - "unicode-width", - "vec_map", ] [[package]] name = "clap_derive" -version = "3.0.0-beta.2" +version = "3.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "370f715b81112975b1b69db93e0b56ea4cd4e5002ac43b2da8474106a54096a1" +checksum = "25320346e922cffe59c0bbc5410c8d8784509efb321488971081313cb1e1a33c" dependencies = [ - "heck", + "heck 0.4.0", "proc-macro-error", "proc-macro2", "quote", @@ -127,12 +125,12 @@ dependencies = [ ] [[package]] -name = "clap_generate" -version = "3.0.0-beta.2" +name = "clap_lex" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adf420f8b687b628d2915ccfd43a660c437a170432e3fbcb66944e8717a0d68f" +checksum = "a37c35f1112dad5e6e0b1adaff798507497a18fceeb30cceb3bae7d1427b9213" dependencies = [ - "clap", + "os_str_bytes", ] [[package]] @@ -409,6 +407,12 @@ dependencies = [ "unicode-segmentation", ] +[[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.1.19" @@ -475,8 +479,6 @@ name = "interactive_clap" version = "0.1.0" dependencies = [ "clap", - "clap_derive", - "clap_generate", "color-eyre", "dialoguer", "interactive_clap_derive", @@ -634,9 +636,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "os_str_bytes" -version = "2.4.0" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afb2e1c3ee07430c2cf76151675e583e0f19985fa6efae47d6848a3e2c824f85" +checksum = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa" [[package]] name = "owo-colors" @@ -881,7 +883,7 @@ version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149" dependencies = [ - "heck", + "heck 0.3.3", "proc-macro2", "quote", "syn", @@ -892,7 +894,7 @@ name = "strum_macros" version = "0.20.1" source = "git+https://github.com/frol/strum?branch=feat/discriminants-pass-through-attributes#83c18208c9f0f0f4c412694ec0ba89f3eab026f9" dependencies = [ - "heck", + "heck 0.3.3", "proc-macro2", "quote", "syn", @@ -962,12 +964,9 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.12.1" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "203008d98caf094106cfaba70acfed15e18ed3ddb7d94e49baec153a2b462789" -dependencies = [ - "unicode-width", -] +checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" [[package]] name = "thiserror" @@ -1093,12 +1092,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" -[[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.4" diff --git a/Cargo.toml b/Cargo.toml index 69b720f..297c315 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,9 +22,11 @@ ledger = ["near-ledger"] [dev-dependencies] shell-words = "1.0.0" -clap = "=3.0.0-beta.2" -clap_derive = "=3.0.0-beta.2" -clap_generate = "=3.0.0-beta.2" +# clap = "=3.0.0-beta.2" +# clap_derive = "=3.0.0-beta.2" +# clap_generate = "=3.0.0-beta.2" +clap = { version = "3.1.17", features = ["derive"] } + strum = { git = "https://github.com/frol/strum", branch = "feat/discriminants-pass-through-attributes", features = ["derive"] } strum_macros = "0.20" diff --git a/examples/struct_with_named_arg.rs b/examples/struct_with_named_arg.rs index f0a43fb..7af8f90 100644 --- a/examples/struct_with_named_arg.rs +++ b/examples/struct_with_named_arg.rs @@ -7,7 +7,7 @@ // ./struct_with_named_arg account QWERTY => account: Ok(Account { account: Sender { sender_account_id: "QWERTY" } }) // To learn more about the parameters, use "help" flag: ./struct_with_named_arg --help -use clap::Clap; +use clap::Parser; #[derive(Debug, Clone, interactive_clap_derive::InteractiveClap)] struct Account { #[interactive_clap(named_arg)] diff --git a/examples/to_cli_args.rs b/examples/to_cli_args.rs index 2087f11..6c0fae0 100644 --- a/examples/to_cli_args.rs +++ b/examples/to_cli_args.rs @@ -19,7 +19,7 @@ struct OnlineArgs { submit: Submit, } -#[derive(Debug, EnumDiscriminants, Clone, clap::Clap, interactive_clap_derive::ToCliArgs)] +#[derive(Debug, EnumDiscriminants, Clone, clap::Parser, interactive_clap_derive::ToCliArgs)] #[strum_discriminants(derive(EnumMessage, EnumIter))] pub enum Submit { #[strum_discriminants(strum(message = "I want to send the transaction to the network"))] diff --git a/interactive_clap_derive/src/derives/interactive_clap/mod.rs b/interactive_clap_derive/src/derives/interactive_clap/mod.rs index b590b0e..991d2d3 100644 --- a/interactive_clap_derive/src/derives/interactive_clap/mod.rs +++ b/interactive_clap_derive/src/derives/interactive_clap/mod.rs @@ -163,7 +163,7 @@ pub fn impl_interactive_clap(ast: &syn::DeriveInput) -> TokenStream { }; let enum_for_clap_named_arg = syn::Ident::new(&format!("ClapNamedArg{}For{}", &type_string, &name), Span::call_site()); quote! { - #[derive(Debug, Clone, clap::Clap, interactive_clap_derive::ToCliArgs)] + #[derive(Debug, Clone, clap::Parser, interactive_clap_derive::ToCliArgs)] pub enum #enum_for_clap_named_arg { #(#attr_doc_vec)* #variant_name(<#ty as interactive_clap::ToCli>::CliVariant) @@ -184,7 +184,7 @@ pub fn impl_interactive_clap(ast: &syn::DeriveInput) -> TokenStream { }; let gen = quote! { - #[derive(Debug, Default, Clone, clap::Clap, interactive_clap_derive::ToCliArgs)] + #[derive(Debug, Default, Clone, clap::Parser, interactive_clap_derive::ToCliArgs)] #[clap( setting(clap::AppSettings::ColoredHelp), setting(clap::AppSettings::DisableHelpSubcommand), @@ -206,11 +206,11 @@ pub fn impl_interactive_clap(ast: &syn::DeriveInput) -> TokenStream { #(#vec_fn_input_arg)* fn try_parse() -> Result<#cli_name, clap::Error> { - <#cli_name as clap::Clap>::try_parse() + <#cli_name as clap::Parser>::try_parse() } fn parse() -> #cli_name { - <#cli_name as clap::Clap>::parse() + <#cli_name as clap::Parser>::parse() } } @@ -317,7 +317,7 @@ pub fn impl_interactive_clap(ast: &syn::DeriveInput) -> TokenStream { self::methods::from_cli_for_enum::from_cli_for_enum(ast, variants); let gen = quote! { - #[derive(Debug, Clone, clap::Clap, interactive_clap_derive::ToCliArgs)] + #[derive(Debug, Clone, clap::Parser, interactive_clap_derive::ToCliArgs)] pub enum #cli_name { #( #enum_variants, )* } @@ -341,11 +341,11 @@ pub fn impl_interactive_clap(ast: &syn::DeriveInput) -> TokenStream { #fn_from_cli_for_enum fn try_parse() -> Result<#cli_name, clap::Error> { - <#cli_name as clap::Clap>::try_parse() + <#cli_name as clap::Parser>::try_parse() } fn parse() -> #cli_name { - <#cli_name as clap::Clap>::parse() + <#cli_name as clap::Parser>::parse() } } };