ellip_dev_utils/
wrapper.rs1#[macro_export]
7macro_rules! func_wrapper {
8 ($func:expr, $t: ty, 1) => {
9 fn wrapped_func(args: &Vec<$t>) -> $t {
10 $func(args[0]).unwrap()
11 }
12 };
13 ($func:expr, $t: ty, 2) => {
14 fn wrapped_func(args: &Vec<$t>) -> $t {
15 $func(args[0], args[1]).unwrap()
16 }
17 };
18 ($func:expr, $t: ty, 3) => {
19 fn wrapped_func(args: &Vec<$t>) -> $t {
20 let ans = $func(args[0], args[1], args[2]).unwrap_or_else(|e| {
21 println!("{}: {}, {}, {}", e, args[0], args[1], args[2]);
22 panic!()
23 });
24 if ans.is_nan() {
25 println!("{}, {}, {}", args[0], args[1], args[2]);
26 panic!("NAN")
27 }
28 ans
29 }
30 };
31 ($func:expr, $t: ty, 4) => {
32 fn wrapped_func(args: &Vec<$t>) -> $t {
33 $func(args[0], args[1], args[2], args[3]).unwrap()
34 }
35 };
36 ($func:expr, $t: ty, $_:expr) => {
37 fn wrapped_func(_args: &Vec<$t>) -> $t {
38 panic!("Unsupported number of arguments")
39 }
40 };
41}