@@ -11,7 +11,7 @@ use crate::{
1111} ;
1212use heck:: ToSnakeCase ;
1313use proc_macro2:: { Ident , Span , TokenStream } ;
14- use quote:: quote;
14+ use quote:: { quote, ToTokens } ;
1515use selection:: * ;
1616use std:: collections:: BTreeMap ;
1717
@@ -21,6 +21,8 @@ pub(crate) fn response_for_query(
2121 options : & GraphQLClientCodegenOptions ,
2222 query : BoundQuery < ' _ > ,
2323) -> Result < TokenStream , GeneralError > {
24+ let serde = options. serde_path ( ) ;
25+
2426 let all_used_types = all_used_types ( operation_id, & query) ;
2527 let response_derives = render_derives ( options. all_response_derives ( ) ) ;
2628 let variable_derives = render_derives ( options. all_variable_derives ( ) ) ;
@@ -43,7 +45,7 @@ pub(crate) fn response_for_query(
4345 render_response_data_fields ( operation_id, options, & query) . render ( & response_derives) ;
4446
4547 let q = quote ! {
46- use serde:: { Serialize , Deserialize } ;
48+ use # serde:: { Serialize , Deserialize } ;
4749 use super :: * ;
4850
4951 #[ allow( dead_code) ]
@@ -77,9 +79,13 @@ fn generate_variables_struct(
7779 options : & GraphQLClientCodegenOptions ,
7880 query : & BoundQuery < ' _ > ,
7981) -> TokenStream {
82+ let serde = options. serde_path ( ) ;
83+ let serde_path = serde. to_token_stream ( ) . to_string ( ) ;
84+
8085 if operation_has_no_variables ( operation_id, query. query ) {
8186 return quote ! (
8287 #variable_derives
88+ #[ serde( crate = #serde_path) ]
8389 pub struct Variables ;
8490 ) ;
8591 }
@@ -115,6 +121,7 @@ fn generate_variables_struct(
115121
116122 let variables_struct = quote ! (
117123 #variable_derives
124+ #[ serde( crate = #serde_path) ]
118125 pub struct Variables {
119126 #( #variable_fields, ) *
120127 }
0 commit comments