ellip_dev_utils/
wrapper.rs1#[macro_export]
7macro_rules! func_wrapper {
8 ($func:expr, $n_args: tt) => {
9 func_wrapper!($func, f64, $n_args)
10 };
11 ($func:expr, k, 1) => {
12 fn wrapped_func(args: &Vec<f64>) -> f64 {
13 $func(args[0] * args[0]).unwrap()
14 }
15 };
16 ($func:expr, k, 2) => {
17 fn wrapped_func(args: &Vec<f64>) -> f64 {
18 $func(args[0], args[1] * args[1]).unwrap()
19 }
20 };
21 ($func:expr, k, 3) => {
22 fn wrapped_func(args: &Vec<f64>) -> f64 {
23 $func(args[0], args[1], args[2] * args[2]).unwrap()
24 }
25 };
26 ($func:expr, $t: ty, 1) => {
27 fn wrapped_func(args: &Vec<$t>) -> $t {
28 $func(args[0]).unwrap()
29 }
30 };
31 ($func:expr, $t: ty, 2) => {
32 fn wrapped_func(args: &Vec<$t>) -> $t {
33 $func(args[0], args[1]).unwrap()
34 }
35 };
36 ($func:expr, $t: ty, 3) => {
37 fn wrapped_func(args: &Vec<$t>) -> $t {
38 $func(args[0], args[1], args[2]).unwrap()
39 }
40 };
41 ($func:expr, $t: ty, 4) => {
42 fn wrapped_func(args: &Vec<$t>) -> $t {
43 $func(args[0], args[1], args[2], args[3]).unwrap()
44 }
45 };
46 ($func:expr, $t: ty, $_:expr) => {
47 fn wrapped_func(_args: &Vec<$t>) -> $t {
48 panic!("Unsupported number of arguments")
49 }
50 };
51}