Например, вместо
assert_eq!(add(2,3), 5);
есть какой-то способ вызвать что-то вроде
let params: [u32; 2] = [2 ,3];
assert_eq!(call!(&add, params), 5);
Я бы счел эту функцию очень полезной для тестирования. Например, если я хочу написать несколько тестов для функции, которая принимает большое количество параметров, я хочу иметь возможность повторно использовать фиктивный объект параметров, например:
#[cfg(test)]
mod tests {
const dummy: [u32; 5] = [0, 0, 0, 0, 0];
#[test]
fn test_first_param() {
let mut params = dummy;
params[0] = 1;
assert_eq!(call!(&add, params)), 1);
}
#[test]
fn test_second_param() {
let mut params = dummy;
params[1] = 1;
assert_eq!(call!(&add, params)), 1);
}
}
Редактировать:
Если этой функциональности не существует, будет ли кто-нибудь заинтересован в том, чтобы я делал и публиковал макрос?