removed optionality it does not make sense

This commit is contained in:
nora 2021-10-01 22:25:17 +02:00
parent a33b81c58e
commit 2ec1f142a9
5 changed files with 52 additions and 35 deletions

View file

@ -2,19 +2,12 @@
macro_rules! arg {
// implicit optional
($name:ident: $long:literal, $short:literal -> $result:ty) => {
arg!(@$name: ($long, ::std::option::Option::Some($short)) -> $result, false);
arg!(@$name: ($long, ::std::option::Option::Some($short)) -> $result);
};
($name:ident: $long:literal -> $result:ty) => {
arg!(@$name: ($long, ::std::option::Option::None) -> $result, false);
arg!(@$name: ($long, ::std::option::Option::None) -> $result);
};
// required
($name:ident: $long:literal, $short:literal -> $result:ty, required) => {
arg!(@$name: ($long, ::std::option::Option::Some($short)) -> $result, true);
};
($name:ident: $long:literal -> $result:ty, required) => {
arg!(@$name: ($long, ::std::option::Option::None) -> $result, true);
};
(@$name:ident: ($long:literal, $short:expr) -> $result:ty, $required:literal) => {
(@$name:ident: ($long:literal, $short:expr) -> $result:ty) => {
#[derive(Default)]
struct $name;
@ -28,10 +21,6 @@ macro_rules! arg {
fn short() -> Option<char> {
$short
}
fn required() -> bool {
$required
}
}
};
}