I'm making fixed tests for my function `pow_mod`

, which is similar to `num_bigint::BigUint::modpow`

.

For convenience, I want to create a wrapper so that I can insert u64 literals while calling it.

I know that efficiency of testing functions hardly matters.

But I wonder what is most efficient (and possibly convenient) and why. Using inlining, macro or const generic or maybe inlined const generic function?

This is how inlined function would look like.

```
[inline] // All parameters will be const.
fn u64_wrapped_pow_mod(base:u64, exp:u64, modulus:u64)->BigUint{
pow_mod(base.to_biguint().unwrap(), &exp.to_biguint().unwrap(), &modulus.to_biguint().unwrap())
}
```

This is how const generic function would look like.

```
fn u64_wrapped_pow_mod<const base:u64, const exp:u64, const modulus:u64>()->BigUint{
pow_mod(base.to_biguint().unwrap(), &exp.to_biguint().unwrap(), &modulus.to_biguint().unwrap())
}
```

To avoid clutter I won't insert code of *macro* & *inlined const generic function*.