From 3ddc91552223c7204571558c303ac383a8a68f03 Mon Sep 17 00:00:00 2001 From: Aiden McClelland Date: Tue, 25 May 2021 10:39:21 -0600 Subject: [PATCH] fix rename --- rpc-toolkit-macro-internals/src/command/mod.rs | 1 + rpc-toolkit-macro-internals/src/command/parse.rs | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/rpc-toolkit-macro-internals/src/command/mod.rs b/rpc-toolkit-macro-internals/src/command/mod.rs index 84d5cfa..39dcf91 100644 --- a/rpc-toolkit-macro-internals/src/command/mod.rs +++ b/rpc-toolkit-macro-internals/src/command/mod.rs @@ -74,6 +74,7 @@ pub struct ArgOptions { check_is_present: bool, help: Option, name: Option, + rename: Option, short: Option, long: Option, parse: Option, diff --git a/rpc-toolkit-macro-internals/src/command/parse.rs b/rpc-toolkit-macro-internals/src/command/parse.rs index 9f2083a..d0878a9 100644 --- a/rpc-toolkit-macro-internals/src/command/parse.rs +++ b/rpc-toolkit-macro-internals/src/command/parse.rs @@ -352,6 +352,7 @@ pub fn parse_arg_attr(attr: Attribute, arg: PatType) -> Result { Pat::Ident(i) => Some(i.ident), _ => None, }, + rename: None, short: None, long: None, parse: None, @@ -512,13 +513,13 @@ pub fn parse_arg_attr(attr: Attribute, arg: PatType) -> Result { } NestedMeta::Meta(Meta::NameValue(nv)) if nv.path.is_ident("rename") => { if let Lit::Str(rename) = nv.lit { - if opt.name.is_some() { + if opt.rename.is_some() { return Err(Error::new( rename.span(), "duplicate argument `rename`", )); } - opt.name = Some( + opt.rename = Some( syn::parse_str(&rename.value()) .map_err(|e| Error::new(rename.span(), format!("{}", e)))?, ); @@ -600,6 +601,7 @@ pub fn parse_arg_attr(attr: Attribute, arg: PatType) -> Result { Meta::Path(_) => (), Meta::NameValue(nv) => return Err(Error::new(nv.span(), "`arg` cannot be assigned to")), } + opt.name = opt.name.or(opt.rename.clone()); if opt.name.is_none() { return Err(Error::new( arg_span,