Expand description
This crate provides a macro call_variadic
which can be used to construct boilerplate code
to call variadic functions using data from a container such as a Vec.
§Example
ⓘ
let data = vec![1, 2];
call_variadic!(
my_func(arg, ...) // func
data, // container
n, // index
data[n], // expand
2, // limit
);
// Generates:
// let container_len = data.len();
// match container_len {
// 0 => my_func(arg),
// 1 => my_func(arg, {
// let n = 0;
// data[n]
// }),
// 2 => my_func(
// arg,
// {
// let n = 0;
// data[n]
// },
// {
// let n = 1;
// data[n]
// },
// ),
// _ => panic!("expected container size of: 0..=2 got data.len(): {}", container_len)
// )),
// }
Modules§
Macros§
- call_
variadic - Call a variadic function given a container