macro_rules! spec_flag {
($short:literal, $long:literal) => { ... };
($short:literal, $long:literal; $($key:ident = $value:expr),* $(,)?) => { ... };
($long:literal) => { ... };
($long:literal; $($key:ident = $value:expr),* $(,)?) => { ... };
($long:literal => $arg:literal) => { ... };
($long:literal => $arg:literal; $($key:ident = $value:expr),* $(,)?) => { ... };
($short:literal, $long:literal => $arg:literal) => { ... };
($short:literal, $long:literal => $arg:literal; $($key:ident = $value:expr),* $(,)?) => { ... };
}Expand description
Create a SpecFlag with minimal boilerplate.
§Syntax
spec_flag!("-s", "--long")
spec_flag!("-s", "--long"; help = "description")
spec_flag!("--long")
spec_flag!("--long"; help = "description", var = true)
spec_flag!("--long" => "<arg>"; help = "description")§Examples
use usage::spec_flag;
// Simple short and long flag
let f = spec_flag!("-v", "--verbose");
// Flag with help text
let f = spec_flag!("-f", "--force"; help = "Force operation");
// Long flag only
let f = spec_flag!("--all");
// Flag with an argument
let f = spec_flag!("--output" => "<file>"; help = "Output file");