aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arg_util.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/arg_util.rs b/src/arg_util.rs
index 06a6ee6..d54dd94 100644
--- a/src/arg_util.rs
+++ b/src/arg_util.rs
@@ -76,6 +76,8 @@ macro_rules! Command {
}
}
}
+
+ impl_default!($name => $( $name::$var(::std::default::Default::default()) , )*);
};
( $name:ident, [ $( $var:ident => ($str:expr, $exec:expr), ) *] ) => {
#[derive(Debug, PartialEq)]
@@ -128,6 +130,8 @@ macro_rules! Command {
}
}
}
+
+ impl_default!($name => $( $name::$var , )*);
};
}
@@ -204,6 +208,19 @@ macro_rules! enum_int {
}
}
}
+
+ impl_default!($name => $( $name::$var , )*);
+
+ };
+}
+
+macro_rules! impl_default {
+ ( $name:ident => $def:expr , $( $other:expr , ) *) => {
+ impl ::std::default::Default for $name {
+ fn default() -> Self {
+ $def
+ }
+ }
};
}