param_builder/
as_param.rs1use crate::param::Param;
2
3pub trait AsParam {
4 fn as_param(&self) -> Param;
5}
6
7macro_rules! impl_copy_as_param {
8 ($t:ty) => {
9 impl AsParam for $t {
10 fn as_param(&self) -> Param {
11 Box::new(*self)
12 }
13 }
14 };
15 ($($t:ty),*) => {
16 $(impl_copy_as_param!($t);)*
17 }
18}
19
20impl_copy_as_param![bool, u32, i32, i64];
21
22macro_rules! impl_clone_as_param {
23 ($t:ty) => {
24 impl AsParam for $t {
25 fn as_param(&self) -> Param {
26 Box::new(self.clone())
27 }
28 }
29 };
30 ($($t:ty),*) => {
31 $(impl_clone_as_param!($t);)*
32 }
33}
34
35impl_clone_as_param![Vec<u8>, String];