From bfc28cc5e27bcbbc2b85534d31448320bb5cde34 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 6 Mar 2022 12:51:47 +0000 Subject: [PATCH] cli: Make SubcommandProperties const-default, not just default inventory 0.2 is going to want this. --- Cargo.lock | 34 +++++++++++++++++++++++++++++++++- cli/Cargo.toml | 1 + cli/clisupport.rs | 7 +++++-- cli/otter.rs | 3 ++- 4 files changed, 41 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 47686803..1b701f9b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -351,7 +351,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fe8c2b5119660fa0a7020d0013bfa7d3ae6e4e27084b391e057062746a7c862" dependencies = [ "either", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro-error", "proc-macro2 1.0.36", "quote 1.0.15", @@ -474,6 +474,27 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "const-default" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b396d1f76d455557e1218ec8066ae14bba60b4b36ecd55577ba979f5db7ecaa" +dependencies = [ + "const-default-derive", +] + +[[package]] +name = "const-default-derive" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f814dd8cbb812233751ff6857b7fa86d9f52e88ac64e8f54e7a1ca0168f03da" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.36", + "quote 1.0.15", + "syn 1.0.86", +] + [[package]] name = "convert_case" version = "0.4.0" @@ -2558,6 +2579,7 @@ name = "otter-cli" version = "0.7.3" dependencies = [ "argparse", + "const-default", "directories", "fehler", "num-traits", @@ -2921,6 +2943,16 @@ dependencies = [ "toml 0.5.8", ] +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml 0.5.8", +] + [[package]] name = "proc-macro-error" version = "1.0.4" diff --git a/cli/Cargo.toml b/cli/Cargo.toml index c421ee7a..52060a9e 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -35,6 +35,7 @@ fehler="1" num-traits="0.2" serde_with="1" +const-default = { version="1", features=["derive" ] } serde = { version="1" , features=["derive", "rc"] } strum = { version="0.24" , features=["derive" ] } diff --git a/cli/clisupport.rs b/cli/clisupport.rs index 856a4913..71afb698 100644 --- a/cli/clisupport.rs +++ b/cli/clisupport.rs @@ -522,7 +522,7 @@ macro_rules! inventory_subcmd { verb: $verb, help: $help, call, - props: default(), + props: $crate::SubcommandProperties::DEFAULT, }} }; {$verb:expr, $help:expr, $($prop:tt)+} => { @@ -530,7 +530,10 @@ macro_rules! inventory_subcmd { verb: $verb, help: $help, call, - props: SubcommandProperties { $($prop)* ..default() }, + props: SubcommandProperties { + $($prop)* + ..$crate::SubcommandProperties::DEFAULT + }, }} }; } diff --git a/cli/otter.rs b/cli/otter.rs index 51c78fec..fe0bef98 100644 --- a/cli/otter.rs +++ b/cli/otter.rs @@ -14,6 +14,7 @@ pub use std::rc::Rc; pub use argparse::{self,ArgumentParser,action::{TypedAction,ParseResult}}; pub use argparse::action::{Action,IFlagAction,IArgAction}; +pub use const_default::ConstDefault; pub use derive_more::Display; pub use otter::prelude::*; @@ -75,7 +76,7 @@ pub struct Subcommand { } inventory::collect!(Subcommand); -#[derive(Default,Debug)] +#[derive(ConstDefault,Debug)] pub struct SubcommandProperties { suppress_selectaccount: bool, } -- 2.30.2