1
1
use std:: str:: FromStr ;
2
2
#[ cfg( feature = "serde" ) ]
3
- use serde:: Serialize ;
3
+ use serde:: { Serialize , Deserialize } ;
4
4
use thiserror:: Error ;
5
5
6
6
pub use crate :: common:: { Directive , Text , Type , Value } ;
7
7
use crate :: position:: Pos ;
8
8
9
9
#[ derive( Debug , Clone , Default , PartialEq ) ]
10
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
10
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
11
11
pub struct Document < ' a , T : Text < ' a > >
12
12
where
13
13
T : Text < ' a > ,
@@ -35,7 +35,7 @@ impl<'a> Document<'a, String> {
35
35
}
36
36
37
37
#[ derive( Debug , Clone , PartialEq ) ]
38
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
38
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
39
39
pub enum Definition < ' a , T : Text < ' a > > {
40
40
SchemaDefinition ( SchemaDefinition < ' a , T > ) ,
41
41
TypeDefinition ( TypeDefinition < ' a , T > ) ,
@@ -44,7 +44,7 @@ pub enum Definition<'a, T: Text<'a>> {
44
44
}
45
45
46
46
#[ derive( Debug , Clone , Default , PartialEq ) ]
47
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
47
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
48
48
pub struct SchemaDefinition < ' a , T : Text < ' a > > {
49
49
pub position : Pos ,
50
50
pub directives : Vec < Directive < ' a , T > > ,
@@ -54,7 +54,7 @@ pub struct SchemaDefinition<'a, T: Text<'a>> {
54
54
}
55
55
56
56
#[ derive( Debug , Clone , PartialEq ) ]
57
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
57
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
58
58
pub enum TypeDefinition < ' a , T : Text < ' a > > {
59
59
Scalar ( ScalarType < ' a , T > ) ,
60
60
Object ( ObjectType < ' a , T > ) ,
@@ -65,7 +65,7 @@ pub enum TypeDefinition<'a, T: Text<'a>> {
65
65
}
66
66
67
67
#[ derive( Debug , Clone , PartialEq ) ]
68
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
68
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
69
69
pub enum TypeExtension < ' a , T : Text < ' a > > {
70
70
Scalar ( ScalarTypeExtension < ' a , T > ) ,
71
71
Object ( ObjectTypeExtension < ' a , T > ) ,
@@ -76,7 +76,7 @@ pub enum TypeExtension<'a, T: Text<'a>> {
76
76
}
77
77
78
78
#[ derive( Debug , Clone , PartialEq ) ]
79
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
79
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
80
80
pub struct ScalarType < ' a , T : Text < ' a > > {
81
81
pub position : Pos ,
82
82
pub description : Option < String > ,
99
99
}
100
100
101
101
#[ derive( Debug , Clone , PartialEq ) ]
102
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
102
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
103
103
pub struct ScalarTypeExtension < ' a , T : Text < ' a > > {
104
104
pub position : Pos ,
105
105
pub name : T :: Value ,
@@ -120,7 +120,7 @@ where
120
120
}
121
121
122
122
#[ derive( Debug , Clone , PartialEq ) ]
123
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
123
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
124
124
pub struct ObjectType < ' a , T : Text < ' a > > {
125
125
pub position : Pos ,
126
126
pub description : Option < String > ,
@@ -147,7 +147,7 @@ where
147
147
}
148
148
149
149
#[ derive( Debug , Clone , PartialEq ) ]
150
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
150
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
151
151
pub struct ObjectTypeExtension < ' a , T : Text < ' a > > {
152
152
pub position : Pos ,
153
153
pub name : T :: Value ,
@@ -172,7 +172,7 @@ where
172
172
}
173
173
174
174
#[ derive( Debug , Clone , PartialEq ) ]
175
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
175
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
176
176
pub struct Field < ' a , T : Text < ' a > > {
177
177
pub position : Pos ,
178
178
pub description : Option < String > ,
@@ -183,7 +183,7 @@ pub struct Field<'a, T: Text<'a>> {
183
183
}
184
184
185
185
#[ derive( Debug , Clone , PartialEq ) ]
186
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
186
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
187
187
pub struct InputValue < ' a , T : Text < ' a > > {
188
188
pub position : Pos ,
189
189
pub description : Option < String > ,
@@ -194,7 +194,7 @@ pub struct InputValue<'a, T: Text<'a>> {
194
194
}
195
195
196
196
#[ derive( Debug , Clone , PartialEq ) ]
197
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
197
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
198
198
pub struct InterfaceType < ' a , T : Text < ' a > > {
199
199
pub position : Pos ,
200
200
pub description : Option < String > ,
@@ -221,7 +221,7 @@ where
221
221
}
222
222
223
223
#[ derive( Debug , Clone , PartialEq ) ]
224
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
224
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
225
225
pub struct InterfaceTypeExtension < ' a , T : Text < ' a > > {
226
226
pub position : Pos ,
227
227
pub name : T :: Value ,
@@ -246,7 +246,7 @@ where
246
246
}
247
247
248
248
#[ derive( Debug , Clone , PartialEq ) ]
249
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
249
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
250
250
pub struct UnionType < ' a , T : Text < ' a > > {
251
251
pub position : Pos ,
252
252
pub description : Option < String > ,
@@ -271,7 +271,7 @@ where
271
271
}
272
272
273
273
#[ derive( Debug , Clone , PartialEq ) ]
274
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
274
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
275
275
pub struct UnionTypeExtension < ' a , T : Text < ' a > > {
276
276
pub position : Pos ,
277
277
pub name : T :: Value ,
@@ -294,7 +294,7 @@ where
294
294
}
295
295
296
296
#[ derive( Debug , Clone , PartialEq ) ]
297
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
297
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
298
298
pub struct EnumType < ' a , T : Text < ' a > > {
299
299
pub position : Pos ,
300
300
pub description : Option < String > ,
@@ -319,7 +319,7 @@ where
319
319
}
320
320
321
321
#[ derive( Debug , Clone , PartialEq ) ]
322
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
322
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
323
323
pub struct EnumValue < ' a , T : Text < ' a > > {
324
324
pub position : Pos ,
325
325
pub description : Option < String > ,
@@ -342,7 +342,7 @@ where
342
342
}
343
343
344
344
#[ derive( Debug , Clone , PartialEq ) ]
345
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
345
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
346
346
pub struct EnumTypeExtension < ' a , T : Text < ' a > > {
347
347
pub position : Pos ,
348
348
pub name : T :: Value ,
@@ -365,7 +365,7 @@ where
365
365
}
366
366
367
367
#[ derive( Debug , Clone , PartialEq ) ]
368
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
368
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
369
369
pub struct InputObjectType < ' a , T : Text < ' a > > {
370
370
pub position : Pos ,
371
371
pub description : Option < String > ,
@@ -390,7 +390,7 @@ where
390
390
}
391
391
392
392
#[ derive( Debug , Clone , PartialEq ) ]
393
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
393
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
394
394
pub struct InputObjectTypeExtension < ' a , T : Text < ' a > > {
395
395
pub position : Pos ,
396
396
pub name : T :: Value ,
@@ -413,7 +413,7 @@ where
413
413
}
414
414
415
415
#[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
416
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
416
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
417
417
pub enum DirectiveLocation {
418
418
// executable
419
419
Query ,
@@ -440,7 +440,7 @@ pub enum DirectiveLocation {
440
440
}
441
441
442
442
#[ derive( Debug , Clone , PartialEq ) ]
443
- #[ cfg_attr( feature = "serde" , derive( Serialize ) ) ]
443
+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
444
444
pub struct DirectiveDefinition < ' a , T : Text < ' a > > {
445
445
pub position : Pos ,
446
446
pub description : Option < String > ,
0 commit comments