macro_rules! call_variadic {
(
$func:ident $( :: $func_tail:ident )* ( $($args:tt)* ), $container:ident, $index:ident, $($expand:expr)+, $limit:literal
) => { ... };
(@munch
(func: $func:ident)
(func_tail: $($func_tail:ident)*)
(pre: $($pre:tt)*)
(post: $($post:tt)*)
(container: $container:ident)
(index: $index:ident)
(expand: $($expand:expr)+)
(limit: $limit:literal)
) => { ... };
(@munch
(func: $func:ident)
(func_tail: $($func_tail:ident)*)
(pre: $($pre:tt)*)
(args: ... $(, $post:expr)* $(,)?)
$container:tt
$index:tt
(expand: $($expand:tt)+)
$limit:tt
) => { ... };
(@munch
$func:tt
(func_tail: $($func_tail:tt)*)
(pre: $($pre:tt)*)
(args: $expr:expr, $($rest:tt)*)
$container:tt
$index:tt
(expand: $($expand:tt)+)
$limit:tt
) => { ... };
}
Call a variadic function given a container
- func: function call,
...
is the variadic arguments
- container: container identifier
- index: index identifier
- expand: argument expression: get
argument
at index n
- limit: maximum number of arguments to expand
Panics if size of container is greater than limit