Macro variyak::call_variadic[][src]

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

Panics if size of container is greater than limit