Skip to content

Commit 921f67e

Browse files
committed
Fix Build Issues
1 parent 1067f99 commit 921f67e

File tree

4 files changed

+81
-38
lines changed

4 files changed

+81
-38
lines changed

src/common.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ impl<'a> Text<'a> for std::borrow::Cow<'a, str> {
5252
}
5353

5454
#[derive(Debug, Clone, PartialEq)]
55+
#[cfg_attr(feature = "serde", derive(Serialize))]
5556
pub struct Directive<'a, T: Text<'a>> {
5657
pub position: Pos,
5758
pub name: T::Value,
@@ -65,11 +66,13 @@ pub struct Directive<'a, T: Text<'a>> {
6566
/// in `serde_json`: encapsulate value in new-type, allowing type
6667
/// to be extended later.
6768
#[derive(Debug, Clone, PartialEq)]
69+
#[cfg_attr(feature = "serde", derive(Serialize))]
6870
// we use i64 as a reference implementation: graphql-js thinks even 32bit
6971
// integers is enough. We might consider lift this limit later though
7072
pub struct Number(pub(crate) i64);
7173

7274
#[derive(Debug, Clone, PartialEq)]
75+
#[cfg_attr(feature = "serde", derive(Serialize))]
7376
pub enum Value<'a, T: Text<'a>> {
7477
Variable(T::Value),
7578
Int(Number),
@@ -103,6 +106,7 @@ impl<'a, T: Text<'a>> Value<'a, T> {
103106
}
104107

105108
#[derive(Debug, Clone, PartialEq)]
109+
#[cfg_attr(feature = "serde", derive(Serialize))]
106110
pub enum Type<'a, T: Text<'a>> {
107111
NamedType(T::Value),
108112
ListType(Box<Type<'a, T>>),

src/position.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
#[cfg(feature = "serde")]
12
use serde::Serialize;
23
use std::fmt;
34

45
/// Original position of element in source code
5-
#[derive(PartialOrd, Ord, PartialEq, Eq, Clone, Copy, Default, Hash, Serialize)]
6+
#[derive(PartialOrd, Ord, PartialEq, Eq, Clone, Copy, Default, Hash)]
7+
#[cfg_attr(feature = "serde", derive(Serialize))]
68
pub struct Pos {
79
/// One-based line number
810
pub line: usize,

src/query/ast.rs

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@
55
//!
66
//! [graphql grammar]: http://facebook.github.io/graphql/October2016/#sec-Appendix-Grammar-Summary
77
//!
8+
#[cfg(feature = "serde")]
89
use serde::Serialize;
910

1011
pub use crate::common::{Directive, Number, Text, Type, Value};
1112
use crate::position::Pos;
1213

1314
/// Root of query data
14-
#[derive(Debug, Clone, PartialEq, Serialize)]
15+
#[derive(Debug, Clone, PartialEq)]
16+
#[cfg_attr(feature = "serde", derive(Serialize))]
1517
pub struct Document<'a, T: Text<'a>> {
1618
pub definitions: Vec<Definition<'a, T>>,
1719
}
@@ -35,13 +37,15 @@ impl<'a> Document<'a, String> {
3537
}
3638
}
3739

38-
#[derive(Debug, Clone, PartialEq, Serialize)]
40+
#[derive(Debug, Clone, PartialEq)]
41+
#[cfg_attr(feature = "serde", derive(Serialize))]
3942
pub enum Definition<'a, T: Text<'a>> {
4043
Operation(OperationDefinition<'a, T>),
4144
Fragment(FragmentDefinition<'a, T>),
4245
}
4346

44-
#[derive(Debug, Clone, PartialEq, Serialize)]
47+
#[derive(Debug, Clone, PartialEq)]
48+
#[cfg_attr(feature = "serde", derive(Serialize))]
4549
pub struct FragmentDefinition<'a, T: Text<'a>> {
4650
pub position: Pos,
4751
pub name: T::Value,
@@ -50,15 +54,17 @@ pub struct FragmentDefinition<'a, T: Text<'a>> {
5054
pub selection_set: SelectionSet<'a, T>,
5155
}
5256

53-
#[derive(Debug, Clone, PartialEq, Serialize)]
57+
#[derive(Debug, Clone, PartialEq)]
58+
#[cfg_attr(feature = "serde", derive(Serialize))]
5459
pub enum OperationDefinition<'a, T: Text<'a>> {
5560
SelectionSet(SelectionSet<'a, T>),
5661
Query(Query<'a, T>),
5762
Mutation(Mutation<'a, T>),
5863
Subscription(Subscription<'a, T>),
5964
}
6065

61-
#[derive(Debug, Clone, PartialEq, Serialize)]
66+
#[derive(Debug, Clone, PartialEq)]
67+
#[cfg_attr(feature = "serde", derive(Serialize))]
6268
pub struct Query<'a, T: Text<'a>> {
6369
pub position: Pos,
6470
pub name: Option<T::Value>,
@@ -67,7 +73,8 @@ pub struct Query<'a, T: Text<'a>> {
6773
pub selection_set: SelectionSet<'a, T>,
6874
}
6975

70-
#[derive(Debug, Clone, PartialEq, Serialize)]
76+
#[derive(Debug, Clone, PartialEq)]
77+
#[cfg_attr(feature = "serde", derive(Serialize))]
7178
pub struct Mutation<'a, T: Text<'a>> {
7279
pub position: Pos,
7380
pub name: Option<T::Value>,
@@ -76,7 +83,8 @@ pub struct Mutation<'a, T: Text<'a>> {
7683
pub selection_set: SelectionSet<'a, T>,
7784
}
7885

79-
#[derive(Debug, Clone, PartialEq, Serialize)]
86+
#[derive(Debug, Clone, PartialEq)]
87+
#[cfg_attr(feature = "serde", derive(Serialize))]
8088
pub struct Subscription<'a, T: Text<'a>> {
8189
pub position: Pos,
8290
pub name: Option<T::Value>,
@@ -85,28 +93,32 @@ pub struct Subscription<'a, T: Text<'a>> {
8593
pub selection_set: SelectionSet<'a, T>,
8694
}
8795

88-
#[derive(Debug, Clone, PartialEq, Serialize)]
96+
#[derive(Debug, Clone, PartialEq)]
97+
#[cfg_attr(feature = "serde", derive(Serialize))]
8998
pub struct SelectionSet<'a, T: Text<'a>> {
9099
pub span: (Pos, Pos),
91100
pub items: Vec<Selection<'a, T>>,
92101
}
93102

94-
#[derive(Debug, Clone, PartialEq, Serialize)]
103+
#[derive(Debug, Clone, PartialEq)]
104+
#[cfg_attr(feature = "serde", derive(Serialize))]
95105
pub struct VariableDefinition<'a, T: Text<'a>> {
96106
pub position: Pos,
97107
pub name: T::Value,
98108
pub var_type: Type<'a, T>,
99109
pub default_value: Option<Value<'a, T>>,
100110
}
101111

102-
#[derive(Debug, Clone, PartialEq, Serialize)]
112+
#[derive(Debug, Clone, PartialEq)]
113+
#[cfg_attr(feature = "serde", derive(Serialize))]
103114
pub enum Selection<'a, T: Text<'a>> {
104115
Field(Field<'a, T>),
105116
FragmentSpread(FragmentSpread<'a, T>),
106117
InlineFragment(InlineFragment<'a, T>),
107118
}
108119

109-
#[derive(Debug, Clone, PartialEq, Serialize)]
120+
#[derive(Debug, Clone, PartialEq)]
121+
#[cfg_attr(feature = "serde", derive(Serialize))]
110122
pub struct Field<'a, T: Text<'a>> {
111123
pub position: Pos,
112124
pub alias: Option<T::Value>,
@@ -116,19 +128,22 @@ pub struct Field<'a, T: Text<'a>> {
116128
pub selection_set: SelectionSet<'a, T>,
117129
}
118130

119-
#[derive(Debug, Clone, PartialEq, Serialize)]
131+
#[derive(Debug, Clone, PartialEq)]
132+
#[cfg_attr(feature = "serde", derive(Serialize))]
120133
pub struct FragmentSpread<'a, T: Text<'a>> {
121134
pub position: Pos,
122135
pub fragment_name: T::Value,
123136
pub directives: Vec<Directive<'a, T>>,
124137
}
125138

126-
#[derive(Debug, Clone, PartialEq, Serialize)]
139+
#[derive(Debug, Clone, PartialEq)]
140+
#[cfg_attr(feature = "serde", derive(Serialize))]
127141
pub enum TypeCondition<'a, T: Text<'a>> {
128142
On(T::Value),
129143
}
130144

131-
#[derive(Debug, Clone, PartialEq, Serialize)]
145+
#[derive(Debug, Clone, PartialEq)]
146+
#[cfg_attr(feature = "serde", derive(Serialize))]
132147
pub struct InlineFragment<'a, T: Text<'a>> {
133148
pub position: Pos,
134149
pub type_condition: Option<TypeCondition<'a, T>>,

0 commit comments

Comments
 (0)