macro_rules! arg_spec {
($($arg_name:ident : $arg_type:tt),*$(,)?) => { ... };
($builder:expr, $arg_name:ident, bool) => { ... };
($builder:expr, $arg_name:ident, i64) => { ... };
($builder:expr, $arg_name:ident, u64) => { ... };
($builder:expr, $arg_name:ident, f64) => { ... };
($builder:expr, $arg_name:ident, String) => { ... };
($builder:expr, $arg_name:ident, [bool; $array_size:literal]) => { ... };
($builder:expr, $arg_name:ident, [i64; $array_size:literal]) => { ... };
($builder:expr, $arg_name:ident, [u64; $array_size:literal]) => { ... };
($builder:expr, $arg_name:ident, [f64; $array_size:literal]) => { ... };
($builder:expr, $arg_name:ident, [String; $array_size:literal]) => { ... };
($builder:expr, $arg_name:ident, $arg_type:tt) => { ... };
}