@@ -11,7 +11,7 @@ use crate::{
11
11
} ;
12
12
use heck:: ToSnakeCase ;
13
13
use proc_macro2:: { Ident , Span , TokenStream } ;
14
- use quote:: quote;
14
+ use quote:: { quote, ToTokens } ;
15
15
use selection:: * ;
16
16
use std:: collections:: BTreeMap ;
17
17
@@ -21,6 +21,8 @@ pub(crate) fn response_for_query(
21
21
options : & GraphQLClientCodegenOptions ,
22
22
query : BoundQuery < ' _ > ,
23
23
) -> Result < TokenStream , GeneralError > {
24
+ let serde = options. serde_path ( ) ;
25
+
24
26
let all_used_types = all_used_types ( operation_id, & query) ;
25
27
let response_derives = render_derives ( options. all_response_derives ( ) ) ;
26
28
let variable_derives = render_derives ( options. all_variable_derives ( ) ) ;
@@ -43,7 +45,7 @@ pub(crate) fn response_for_query(
43
45
render_response_data_fields ( operation_id, options, & query) . render ( & response_derives) ;
44
46
45
47
let q = quote ! {
46
- use serde:: { Serialize , Deserialize } ;
48
+ use # serde:: { Serialize , Deserialize } ;
47
49
use super :: * ;
48
50
49
51
#[ allow( dead_code) ]
@@ -77,9 +79,13 @@ fn generate_variables_struct(
77
79
options : & GraphQLClientCodegenOptions ,
78
80
query : & BoundQuery < ' _ > ,
79
81
) -> TokenStream {
82
+ let serde = options. serde_path ( ) ;
83
+ let serde_path = serde. to_token_stream ( ) . to_string ( ) ;
84
+
80
85
if operation_has_no_variables ( operation_id, query. query ) {
81
86
return quote ! (
82
87
#variable_derives
88
+ #[ serde( crate = #serde_path) ]
83
89
pub struct Variables ;
84
90
) ;
85
91
}
@@ -115,6 +121,7 @@ fn generate_variables_struct(
115
121
116
122
let variables_struct = quote ! (
117
123
#variable_derives
124
+ #[ serde( crate = #serde_path) ]
118
125
pub struct Variables {
119
126
#( #variable_fields, ) *
120
127
}
0 commit comments