Skip to content

Commit 6cc124d

Browse files
committed
Add tests for the general args macro
1 parent 9f5294a commit 6cc124d

File tree

3 files changed

+486
-50
lines changed

3 files changed

+486
-50
lines changed

src/macros/args.rs

Lines changed: 21 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -5,40 +5,31 @@ macro_rules! __graphql__args {
55
( @as_expr, $e:expr) => { $e };
66
( @as_pattern, $p:pat) => { $p };
77

8-
(
9-
@assign_arg_vars,
10-
$args:ident, $executorvar:ident, &mut $exec:ident
11-
) => {
12-
let __graphql__args!(@as_pattern, $exec) = &mut $executorvar;
8+
( @assign_arg_vars, $args:ident, $executorvar:ident, , $($rest:tt)* ) => {
9+
__graphql__args!(@assign_arg_vars, $args, $executorvar, $($rest)*);
1310
};
1411

15-
(
16-
@assign_arg_vars,
17-
$args:ident, $executorvar:ident, &mut $exec:ident, $($rest:tt)*
18-
) => {
19-
let __graphql__args!(@as_pattern, $exec) = &mut $executorvar;
20-
__graphql__args!(@assign_arg_vars, $args, $executorvar, $($rest)*);
12+
( @assign_arg_vars, $args:ident, $executorvar:ident, ) => {
13+
();
2114
};
2215

2316
(
2417
@assign_arg_vars,
25-
$args:ident, $executorvar:ident,
26-
$name:ident : Option<$ty:ty> as $desc:expr, $($rest:tt)*
18+
$args:ident, $executorvar:ident, &mut $exec:ident $($rest:tt)*
2719
) => {
28-
let $name: Option<$ty> = $args
29-
.get(&$crate::to_snake_case(stringify!($name)))
30-
.unwrap_or(None);
20+
let __graphql__args!(@as_pattern, $exec) = &mut $executorvar;
3121
__graphql__args!(@assign_arg_vars, $args, $executorvar, $($rest)*);
3222
};
3323

3424
(
3525
@assign_arg_vars,
3626
$args:ident, $executorvar:ident,
37-
$name:ident : Option<$ty:ty> as $desc:expr
27+
$name:ident : Option<$ty:ty> as $desc:tt $($rest:tt)*
3828
) => {
3929
let $name: Option<$ty> = $args
4030
.get(&$crate::to_snake_case(stringify!($name)))
4131
.unwrap_or(None);
32+
__graphql__args!(@assign_arg_vars, $args, $executorvar, $($rest)*);
4233
};
4334

4435
(
@@ -62,20 +53,24 @@ macro_rules! __graphql__args {
6253
.expect("Argument missing - validation must have failed");
6354
};
6455

65-
( @assign_arg_vars, $args:ident, $executorvar:ident, ) => {
66-
();
56+
( @apply_args, $reg:expr, $base:expr, ( ) ) => {
57+
$base
6758
};
6859

6960
(
7061
@apply_args,
71-
$reg:expr, $base:expr, ( &mut executor )
62+
$reg:expr, $base:expr, ( , $( $rest:tt )* )
7263
) => {
73-
$base
64+
__graphql__args!(
65+
@apply_args,
66+
$reg,
67+
$base,
68+
( $($rest)* ))
7469
};
7570

7671
(
7772
@apply_args,
78-
$reg:expr, $base:expr, ( &mut executor , $( $rest:tt )* )
73+
$reg:expr, $base:expr, ( &mut executor $( $rest:tt )* )
7974
) => {
8075
__graphql__args!(
8176
@apply_args,
@@ -102,24 +97,14 @@ macro_rules! __graphql__args {
10297
$reg,
10398
$base.argument($reg.arg_with_default::<$t>(
10499
&$crate::to_snake_case(stringify!($name)),
105-
&__graphql__args!(@as_expr, $default)))
106-
.description($desc),
100+
&__graphql__args!(@as_expr, $default))),
107101
( $($rest)* ))
108102
};
109103

110104
(
111105
@apply_args,
112-
$reg:expr, $base:expr, ( $name:ident = $default:tt : $t:ty as $desc:expr )
113-
) => {
114-
$base.argument($reg.arg_with_default::<$t>(
115-
&$crate::to_snake_case(stringify!($name)),
116-
&__graphql__args!(@as_expr, $default))
117-
.description($desc))
118-
};
119-
120-
(
121-
@apply_args,
122-
$reg:expr, $base:expr, ( $name:ident = $default:tt : $t:ty as $desc:expr , $( $rest:tt )* )
106+
$reg:expr, $base:expr,
107+
( $name:ident = $default:tt : $t:ty as $desc:tt $( $rest:tt )* )
123108
) => {
124109
__graphql__args!(
125110
@apply_args,
@@ -153,17 +138,7 @@ macro_rules! __graphql__args {
153138

154139
(
155140
@apply_args,
156-
$reg:expr, $base:expr, ( $name:ident : $t:ty as $desc:expr )
157-
) => {
158-
$base.argument(
159-
$reg.arg::<$t>(
160-
&$crate::to_snake_case(stringify!($name)))
161-
.description($desc))
162-
};
163-
164-
(
165-
@apply_args,
166-
$reg:expr, $base:expr, ( $name:ident : $t:ty as $desc:expr , $( $rest:tt )* )
141+
$reg:expr, $base:expr, ( $name:ident : $t:ty as $desc:tt $( $rest:tt )* )
167142
) => {
168143
__graphql__args!(
169144
@apply_args,
@@ -174,8 +149,4 @@ macro_rules! __graphql__args {
174149
.description($desc)),
175150
( $($rest)* ))
176151
};
177-
178-
( @apply_args, $reg:expr, $base:expr, ( ) ) => {
179-
$base
180-
};
181152
}

0 commit comments

Comments
 (0)