1#[macro_export]
4macro_rules! query {
5 ($($kind:ident),*) => (
6 $(
7 impl<'a> From<$kind<'a>> for Query<'a> {
8 fn from(q: $kind<'a>) -> Self {
9 Query::$kind(q)
10 }
11 }
12 )*
13 );
14}
15
16#[macro_export]
19macro_rules! boxed_query {
20 ($($kind:ident),*) => (
21 $(
22 impl<'a> From<$kind<'a>> for Query<'a> {
23 fn from(q: $kind<'a>) -> Self {
24 Query::$kind(Box::new(q))
25 }
26 }
27 )*
28 );
29}
30
31#[macro_export]
33macro_rules! int_expr {
34 ($($kind:ident),*) => (
35 $(
36 impl<'a> From<$kind> for Number {
37 fn from(i: $kind) -> Number {
38 Number::Int(i64::from(i))
39 }
40 }
41
42 impl<'a> From<$kind> for Expr<'a> {
43 fn from(i: $kind) -> Expr<'a> {
44 Expr::Simple(SimpleExpr::Number(i.into()))
45 }
46 }
47 )*
48 );
49}
50
51#[macro_export]
53macro_rules! uint_expr {
54 ($($kind:ident),*) => (
55 $(
56 impl<'a> From<$kind> for Number {
57 fn from(i: $kind) -> Number {
58 Number::UInt(u64::from(i))
59 }
60 }
61
62 impl<'a> From<$kind> for Expr<'a> {
63 fn from(i: $kind) -> Expr<'a> {
64 Expr::Simple(SimpleExpr::Number(i.into()))
65 }
66 }
67 )*
68 );
69}