Skip to content

Commit 0a1900f

Browse files
committed
Support Serde Deserialization For AST
1 parent 921f67e commit 0a1900f

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

src/schema/ast.rs

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
use std::str::FromStr;
22
#[cfg(feature = "serde")]
3-
use serde::Serialize;
3+
use serde::{Serialize, Deserialize};
44
use thiserror::Error;
55

66
pub use crate::common::{Directive, Text, Type, Value};
77
use crate::position::Pos;
88

99
#[derive(Debug, Clone, Default, PartialEq)]
10-
#[cfg_attr(feature = "serde", derive(Serialize))]
10+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
1111
pub struct Document<'a, T: Text<'a>>
1212
where
1313
T: Text<'a>,
@@ -35,7 +35,7 @@ impl<'a> Document<'a, String> {
3535
}
3636

3737
#[derive(Debug, Clone, PartialEq)]
38-
#[cfg_attr(feature = "serde", derive(Serialize))]
38+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
3939
pub enum Definition<'a, T: Text<'a>> {
4040
SchemaDefinition(SchemaDefinition<'a, T>),
4141
TypeDefinition(TypeDefinition<'a, T>),
@@ -44,7 +44,7 @@ pub enum Definition<'a, T: Text<'a>> {
4444
}
4545

4646
#[derive(Debug, Clone, Default, PartialEq)]
47-
#[cfg_attr(feature = "serde", derive(Serialize))]
47+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
4848
pub struct SchemaDefinition<'a, T: Text<'a>> {
4949
pub position: Pos,
5050
pub directives: Vec<Directive<'a, T>>,
@@ -54,7 +54,7 @@ pub struct SchemaDefinition<'a, T: Text<'a>> {
5454
}
5555

5656
#[derive(Debug, Clone, PartialEq)]
57-
#[cfg_attr(feature = "serde", derive(Serialize))]
57+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
5858
pub enum TypeDefinition<'a, T: Text<'a>> {
5959
Scalar(ScalarType<'a, T>),
6060
Object(ObjectType<'a, T>),
@@ -65,7 +65,7 @@ pub enum TypeDefinition<'a, T: Text<'a>> {
6565
}
6666

6767
#[derive(Debug, Clone, PartialEq)]
68-
#[cfg_attr(feature = "serde", derive(Serialize))]
68+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
6969
pub enum TypeExtension<'a, T: Text<'a>> {
7070
Scalar(ScalarTypeExtension<'a, T>),
7171
Object(ObjectTypeExtension<'a, T>),
@@ -76,7 +76,7 @@ pub enum TypeExtension<'a, T: Text<'a>> {
7676
}
7777

7878
#[derive(Debug, Clone, PartialEq)]
79-
#[cfg_attr(feature = "serde", derive(Serialize))]
79+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
8080
pub struct ScalarType<'a, T: Text<'a>> {
8181
pub position: Pos,
8282
pub description: Option<String>,
@@ -99,7 +99,7 @@ where
9999
}
100100

101101
#[derive(Debug, Clone, PartialEq)]
102-
#[cfg_attr(feature = "serde", derive(Serialize))]
102+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
103103
pub struct ScalarTypeExtension<'a, T: Text<'a>> {
104104
pub position: Pos,
105105
pub name: T::Value,
@@ -120,7 +120,7 @@ where
120120
}
121121

122122
#[derive(Debug, Clone, PartialEq)]
123-
#[cfg_attr(feature = "serde", derive(Serialize))]
123+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
124124
pub struct ObjectType<'a, T: Text<'a>> {
125125
pub position: Pos,
126126
pub description: Option<String>,
@@ -147,7 +147,7 @@ where
147147
}
148148

149149
#[derive(Debug, Clone, PartialEq)]
150-
#[cfg_attr(feature = "serde", derive(Serialize))]
150+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
151151
pub struct ObjectTypeExtension<'a, T: Text<'a>> {
152152
pub position: Pos,
153153
pub name: T::Value,
@@ -172,7 +172,7 @@ where
172172
}
173173

174174
#[derive(Debug, Clone, PartialEq)]
175-
#[cfg_attr(feature = "serde", derive(Serialize))]
175+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
176176
pub struct Field<'a, T: Text<'a>> {
177177
pub position: Pos,
178178
pub description: Option<String>,
@@ -183,7 +183,7 @@ pub struct Field<'a, T: Text<'a>> {
183183
}
184184

185185
#[derive(Debug, Clone, PartialEq)]
186-
#[cfg_attr(feature = "serde", derive(Serialize))]
186+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
187187
pub struct InputValue<'a, T: Text<'a>> {
188188
pub position: Pos,
189189
pub description: Option<String>,
@@ -194,7 +194,7 @@ pub struct InputValue<'a, T: Text<'a>> {
194194
}
195195

196196
#[derive(Debug, Clone, PartialEq)]
197-
#[cfg_attr(feature = "serde", derive(Serialize))]
197+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
198198
pub struct InterfaceType<'a, T: Text<'a>> {
199199
pub position: Pos,
200200
pub description: Option<String>,
@@ -221,7 +221,7 @@ where
221221
}
222222

223223
#[derive(Debug, Clone, PartialEq)]
224-
#[cfg_attr(feature = "serde", derive(Serialize))]
224+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
225225
pub struct InterfaceTypeExtension<'a, T: Text<'a>> {
226226
pub position: Pos,
227227
pub name: T::Value,
@@ -246,7 +246,7 @@ where
246246
}
247247

248248
#[derive(Debug, Clone, PartialEq)]
249-
#[cfg_attr(feature = "serde", derive(Serialize))]
249+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
250250
pub struct UnionType<'a, T: Text<'a>> {
251251
pub position: Pos,
252252
pub description: Option<String>,
@@ -271,7 +271,7 @@ where
271271
}
272272

273273
#[derive(Debug, Clone, PartialEq)]
274-
#[cfg_attr(feature = "serde", derive(Serialize))]
274+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
275275
pub struct UnionTypeExtension<'a, T: Text<'a>> {
276276
pub position: Pos,
277277
pub name: T::Value,
@@ -294,7 +294,7 @@ where
294294
}
295295

296296
#[derive(Debug, Clone, PartialEq)]
297-
#[cfg_attr(feature = "serde", derive(Serialize))]
297+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
298298
pub struct EnumType<'a, T: Text<'a>> {
299299
pub position: Pos,
300300
pub description: Option<String>,
@@ -319,7 +319,7 @@ where
319319
}
320320

321321
#[derive(Debug, Clone, PartialEq)]
322-
#[cfg_attr(feature = "serde", derive(Serialize))]
322+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
323323
pub struct EnumValue<'a, T: Text<'a>> {
324324
pub position: Pos,
325325
pub description: Option<String>,
@@ -342,7 +342,7 @@ where
342342
}
343343

344344
#[derive(Debug, Clone, PartialEq)]
345-
#[cfg_attr(feature = "serde", derive(Serialize))]
345+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
346346
pub struct EnumTypeExtension<'a, T: Text<'a>> {
347347
pub position: Pos,
348348
pub name: T::Value,
@@ -365,7 +365,7 @@ where
365365
}
366366

367367
#[derive(Debug, Clone, PartialEq)]
368-
#[cfg_attr(feature = "serde", derive(Serialize))]
368+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
369369
pub struct InputObjectType<'a, T: Text<'a>> {
370370
pub position: Pos,
371371
pub description: Option<String>,
@@ -390,7 +390,7 @@ where
390390
}
391391

392392
#[derive(Debug, Clone, PartialEq)]
393-
#[cfg_attr(feature = "serde", derive(Serialize))]
393+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
394394
pub struct InputObjectTypeExtension<'a, T: Text<'a>> {
395395
pub position: Pos,
396396
pub name: T::Value,
@@ -413,7 +413,7 @@ where
413413
}
414414

415415
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
416-
#[cfg_attr(feature = "serde", derive(Serialize))]
416+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
417417
pub enum DirectiveLocation {
418418
// executable
419419
Query,
@@ -440,7 +440,7 @@ pub enum DirectiveLocation {
440440
}
441441

442442
#[derive(Debug, Clone, PartialEq)]
443-
#[cfg_attr(feature = "serde", derive(Serialize))]
443+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
444444
pub struct DirectiveDefinition<'a, T: Text<'a>> {
445445
pub position: Pos,
446446
pub description: Option<String>,

0 commit comments

Comments
 (0)