diff options
author | Daniel Mueller <deso@posteo.net> | 2019-05-27 08:16:27 -0700 |
---|---|---|
committer | Daniel Mueller <deso@posteo.net> | 2019-05-27 08:16:27 -0700 |
commit | c01bbbf186cd88f9e1b3c3eda0459635bed209b4 (patch) | |
tree | d161ffd8fc36dc18ba99ff157241c6191d89c9ff | |
parent | b637d5284c6117da3bfeb471da7c62e53a632621 (diff) | |
download | nitrocli-c01bbbf186cd88f9e1b3c3eda0459635bed209b4.tar.gz nitrocli-c01bbbf186cd88f9e1b3c3eda0459635bed209b4.tar.bz2 |
Require trailing comma in Enum macro's input
The input to the Enum macro is supposed to resemble the definition of an
enum in Rust code. When manually defining an enum (or a struct for that
matter), we typically terminate all branches with a comma, and don't
just omit that on the last line.
To mirror this behavior, this change adjusts the Enum macro to accept
(and in fact, require) a comma-terminated last line as well, as opposed
to not accepting it as had been the case so far.
-rw-r--r-- | nitrocli/src/arg_util.rs | 8 | ||||
-rw-r--r-- | nitrocli/src/args.rs | 22 | ||||
-rw-r--r-- | nitrocli/src/pinentry.rs | 2 |
3 files changed, 16 insertions, 16 deletions
diff --git a/nitrocli/src/arg_util.rs b/nitrocli/src/arg_util.rs index 2996060..e2e7b1d 100644 --- a/nitrocli/src/arg_util.rs +++ b/nitrocli/src/arg_util.rs @@ -29,9 +29,9 @@ macro_rules! count { // TODO: Right now we hard code the derives we create. We may want to // make this set configurable. macro_rules! Enum { - ( $name:ident, [ $( $var:ident => ($str:expr, $exec:expr) ), *] ) => { + ( $name:ident, [ $( $var:ident => ($str:expr, $exec:expr), ) *] ) => { Enum! {$name, [ - $( $var => $str ),* + $( $var => $str, )* ]} #[allow(unused_qualifications)] @@ -49,7 +49,7 @@ macro_rules! Enum { } } }; - ( $name:ident, [ $( $var:ident => $str:expr ), *] ) => { + ( $name:ident, [ $( $var:ident => $str:expr, ) *] ) => { #[derive(Clone, Copy, Debug, PartialEq)] pub enum $name { $( @@ -138,7 +138,7 @@ mod tests { Enum! {Command, [ Var1 => "var1", Var2 => "2", - Var3 => "crazy" + Var3 => "crazy", ]} #[test] diff --git a/nitrocli/src/args.rs b/nitrocli/src/args.rs index 7e4f839..82e9c2a 100644 --- a/nitrocli/src/args.rs +++ b/nitrocli/src/args.rs @@ -104,7 +104,7 @@ impl<'io> Stdio for ExecCtx<'io> { #[allow(unused_doc_comments)] Enum! {DeviceModel, [ Pro => "pro", - Storage => "storage" + Storage => "storage", ]} impl From<DeviceModel> for nitrokey::Model { @@ -126,12 +126,12 @@ Enum! {Command, [ Pws => ("pws", pws), Reset => ("reset", reset), Status => ("status", status), - Storage => ("storage", storage) + Storage => ("storage", storage), ]} Enum! {ConfigCommand, [ Get => ("get", config_get), - Set => ("set", config_set) + Set => ("set", config_set), ]} #[derive(Clone, Copy, Debug)] @@ -173,17 +173,17 @@ Enum! {OtpCommand, [ Clear => ("clear", otp_clear), Get => ("get", otp_get), Set => ("set", otp_set), - Status => ("status", otp_status) + Status => ("status", otp_status), ]} Enum! {OtpAlgorithm, [ Hotp => "hotp", - Totp => "totp" + Totp => "totp", ]} Enum! {OtpMode, [ SixDigits => "6", - EightDigits => "8" + EightDigits => "8", ]} impl From<OtpMode> for nitrokey::OtpMode { @@ -198,20 +198,20 @@ impl From<OtpMode> for nitrokey::OtpMode { Enum! {OtpSecretFormat, [ Ascii => "ascii", Base32 => "base32", - Hex => "hex" + Hex => "hex", ]} Enum! {PinCommand, [ Clear => ("clear", pin_clear), Set => ("set", pin_set), - Unblock => ("unblock", pin_unblock) + Unblock => ("unblock", pin_unblock), ]} Enum! {PwsCommand, [ Clear => ("clear", pws_clear), Get => ("get", pws_get), Set => ("set", pws_set), - Status => ("status", pws_status) + Status => ("status", pws_status), ]} fn parse( @@ -249,7 +249,7 @@ Enum! {StorageCommand, [ Close => ("close", storage_close), Hidden => ("hidden", storage_hidden), Open => ("open", storage_open), - Status => ("status", storage_status) + Status => ("status", storage_status), ]} /// Execute a storage subcommand. @@ -306,7 +306,7 @@ fn storage_status(ctx: &mut ExecCtx<'_>, args: Vec<String>) -> Result<()> { Enum! {HiddenCommand, [ Close => ("close", storage_hidden_close), Create => ("create", storage_hidden_create), - Open => ("open", storage_hidden_open) + Open => ("open", storage_hidden_open), ]} /// Execute a storage hidden subcommand. diff --git a/nitrocli/src/pinentry.rs b/nitrocli/src/pinentry.rs index 8bab65e..7bba6b9 100644 --- a/nitrocli/src/pinentry.rs +++ b/nitrocli/src/pinentry.rs @@ -33,7 +33,7 @@ type CowStr = borrow::Cow<'static, str>; #[allow(unused_doc_comments)] Enum! {PinType, [ Admin => "admin", - User => "user" + User => "user", ]} /// A trait representing a secret to be entered by the user. |