@@ -54,7 +54,7 @@ fn parse_operation_definition<'a>(parser: &mut Parser<'a>) -> ParseResult<'a, Op
54
54
let start_pos = parser. peek ( ) . start . clone ( ) ;
55
55
let operation_type = try!( parse_operation_type ( parser) ) ;
56
56
let name = match parser. peek ( ) . item {
57
- Token :: Name ( _) => Some ( try!( parser. expect_name ( ) ) . map ( |s| s . to_owned ( ) ) ) ,
57
+ Token :: Name ( _) => Some ( try!( parser. expect_name ( ) ) ) ,
58
58
_ => None
59
59
} ;
60
60
let variable_definitions = try!( parse_variable_definitions ( parser) ) ;
@@ -74,7 +74,7 @@ fn parse_operation_definition<'a>(parser: &mut Parser<'a>) -> ParseResult<'a, Op
74
74
}
75
75
}
76
76
77
- fn parse_fragment_definition < ' a > ( parser : & mut Parser < ' a > ) -> ParseResult < ' a , Fragment > {
77
+ fn parse_fragment_definition < ' a > ( parser : & mut Parser < ' a > ) -> ParseResult < ' a , Fragment < ' a > > {
78
78
let Spanning { start : start_pos, .. } = try!( parser. expect ( & Token :: Name ( "fragment" ) ) ) ;
79
79
let name = match parser. expect_name ( ) {
80
80
Ok ( n) => if n. item == "on" {
@@ -95,14 +95,14 @@ fn parse_fragment_definition<'a>(parser: &mut Parser<'a>) -> ParseResult<'a, Fra
95
95
& start_pos,
96
96
& selection_set. end ,
97
97
Fragment {
98
- name : name. map ( |s| s . to_owned ( ) ) ,
99
- type_condition : type_cond. map ( |s| s . to_owned ( ) ) ,
98
+ name : name,
99
+ type_condition : type_cond,
100
100
directives : directives. map ( |s| s. item ) ,
101
101
selection_set : selection_set. item ,
102
102
} ) )
103
103
}
104
104
105
- fn parse_optional_selection_set < ' a > ( parser : & mut Parser < ' a > ) -> OptionParseResult < ' a , Vec < Selection > > {
105
+ fn parse_optional_selection_set < ' a > ( parser : & mut Parser < ' a > ) -> OptionParseResult < ' a , Vec < Selection < ' a > > > {
106
106
if parser. peek ( ) . item == Token :: CurlyOpen {
107
107
Ok ( Some ( try!( parse_selection_set ( parser) ) ) )
108
108
}
@@ -111,21 +111,21 @@ fn parse_optional_selection_set<'a>(parser: &mut Parser<'a>) -> OptionParseResul
111
111
}
112
112
}
113
113
114
- fn parse_selection_set < ' a > ( parser : & mut Parser < ' a > ) -> ParseResult < ' a , Vec < Selection > > {
114
+ fn parse_selection_set < ' a > ( parser : & mut Parser < ' a > ) -> ParseResult < ' a , Vec < Selection < ' a > > > {
115
115
parser. unlocated_delimited_nonempty_list (
116
116
& Token :: CurlyOpen ,
117
117
parse_selection,
118
118
& Token :: CurlyClose )
119
119
}
120
120
121
- fn parse_selection < ' a > ( parser : & mut Parser < ' a > ) -> UnlocatedParseResult < ' a , Selection > {
121
+ fn parse_selection < ' a > ( parser : & mut Parser < ' a > ) -> UnlocatedParseResult < ' a , Selection < ' a > > {
122
122
match parser. peek ( ) . item {
123
123
Token :: Ellipsis => parse_fragment ( parser) ,
124
124
_ => parse_field ( parser) . map ( Selection :: Field ) ,
125
125
}
126
126
}
127
127
128
- fn parse_fragment < ' a > ( parser : & mut Parser < ' a > ) -> UnlocatedParseResult < ' a , Selection > {
128
+ fn parse_fragment < ' a > ( parser : & mut Parser < ' a > ) -> UnlocatedParseResult < ' a , Selection < ' a > > {
129
129
let Spanning { start : ref start_pos, .. } = try!( parser. expect ( & Token :: Ellipsis ) ) ;
130
130
131
131
match parser. peek ( ) . item {
@@ -140,7 +140,7 @@ fn parse_fragment<'a>(parser: &mut Parser<'a>) -> UnlocatedParseResult<'a, Selec
140
140
& start_pos. clone ( ) ,
141
141
& selection_set. end ,
142
142
InlineFragment {
143
- type_condition : Some ( name. map ( |s| s . to_owned ( ) ) ) ,
143
+ type_condition : Some ( name) ,
144
144
directives : directives. map ( |s| s. item ) ,
145
145
selection_set : selection_set. item ,
146
146
} ) ) )
@@ -167,7 +167,7 @@ fn parse_fragment<'a>(parser: &mut Parser<'a>) -> UnlocatedParseResult<'a, Selec
167
167
& start_pos. clone ( ) ,
168
168
& directives. as_ref ( ) . map_or ( & frag_name. end , |s| & s. end ) . clone ( ) ,
169
169
FragmentSpread {
170
- name : frag_name. map ( |s| s . to_owned ( ) ) ,
170
+ name : frag_name,
171
171
directives : directives. map ( |s| s. item ) ,
172
172
} ) ) )
173
173
} ,
@@ -189,11 +189,11 @@ fn parse_fragment<'a>(parser: &mut Parser<'a>) -> UnlocatedParseResult<'a, Selec
189
189
}
190
190
}
191
191
192
- fn parse_field < ' a > ( parser : & mut Parser < ' a > ) -> ParseResult < ' a , Field > {
193
- let mut alias = Some ( try!( parser. expect_name ( ) ) . map ( |s| s . to_owned ( ) ) ) ;
192
+ fn parse_field < ' a > ( parser : & mut Parser < ' a > ) -> ParseResult < ' a , Field < ' a > > {
193
+ let mut alias = Some ( try!( parser. expect_name ( ) ) ) ;
194
194
195
195
let name = if try!( parser. skip ( & Token :: Colon ) ) . is_some ( ) {
196
- try!( parser. expect_name ( ) ) . map ( |s| s . to_owned ( ) )
196
+ try!( parser. expect_name ( ) )
197
197
}
198
198
else {
199
199
alias. take ( ) . unwrap ( )
@@ -212,14 +212,14 @@ fn parse_field<'a>(parser: &mut Parser<'a>) -> ParseResult<'a, Field> {
212
212
. clone ( ) ,
213
213
Field {
214
214
alias : alias,
215
- name : name. map ( |s| s . to_owned ( ) ) ,
215
+ name : name,
216
216
arguments : arguments,
217
217
directives : directives. map ( |s| s. item ) ,
218
218
selection_set : selection_set. map ( |s| s. item ) ,
219
219
} ) )
220
220
}
221
221
222
- fn parse_arguments < ' a > ( parser : & mut Parser < ' a > ) -> OptionParseResult < ' a , Arguments > {
222
+ fn parse_arguments < ' a > ( parser : & mut Parser < ' a > ) -> OptionParseResult < ' a , Arguments < ' a > > {
223
223
if parser. peek ( ) . item != Token :: ParenOpen {
224
224
Ok ( None )
225
225
} else {
@@ -231,15 +231,15 @@ fn parse_arguments<'a>(parser: &mut Parser<'a>) -> OptionParseResult<'a, Argumen
231
231
}
232
232
}
233
233
234
- fn parse_argument < ' a > ( parser : & mut Parser < ' a > ) -> ParseResult < ' a , ( Spanning < String > , Spanning < InputValue > ) > {
234
+ fn parse_argument < ' a > ( parser : & mut Parser < ' a > ) -> ParseResult < ' a , ( Spanning < & ' a str > , Spanning < InputValue > ) > {
235
235
let name = try!( parser. expect_name ( ) ) ;
236
236
try!( parser. expect ( & Token :: Colon ) ) ;
237
237
let value = try!( parse_value_literal ( parser, false ) ) ;
238
238
239
239
Ok ( Spanning :: start_end (
240
240
& name. start . clone ( ) ,
241
241
& value. end . clone ( ) ,
242
- ( name. map ( |s| s . to_owned ( ) ) , value) ) )
242
+ ( name, value) ) )
243
243
}
244
244
245
245
fn parse_operation_type < ' a > ( parser : & mut Parser < ' a > ) -> ParseResult < ' a , OperationType > {
@@ -263,7 +263,7 @@ fn parse_variable_definitions<'a>(parser: &mut Parser<'a>) -> OptionParseResult<
263
263
}
264
264
}
265
265
266
- fn parse_variable_definition < ' a > ( parser : & mut Parser < ' a > ) -> ParseResult < ' a , ( Spanning < String > , VariableDefinition < ' a > ) > {
266
+ fn parse_variable_definition < ' a > ( parser : & mut Parser < ' a > ) -> ParseResult < ' a , ( Spanning < & ' a str > , VariableDefinition < ' a > ) > {
267
267
let Spanning { start : start_pos, .. } = try!( parser. expect ( & Token :: Dollar ) ) ;
268
268
let var_name = try!( parser. expect_name ( ) ) ;
269
269
try!( parser. expect ( & Token :: Colon ) ) ;
@@ -283,7 +283,7 @@ fn parse_variable_definition<'a>(parser: &mut Parser<'a>) -> ParseResult<'a, (Sp
283
283
Spanning :: start_end (
284
284
& start_pos,
285
285
& var_name. end ,
286
- var_name. item . to_owned ( ) ,
286
+ var_name. item ,
287
287
) ,
288
288
VariableDefinition {
289
289
var_type : var_type,
@@ -292,7 +292,7 @@ fn parse_variable_definition<'a>(parser: &mut Parser<'a>) -> ParseResult<'a, (Sp
292
292
) ) )
293
293
}
294
294
295
- fn parse_directives < ' a > ( parser : & mut Parser < ' a > ) -> OptionParseResult < ' a , Vec < Spanning < Directive > > > {
295
+ fn parse_directives < ' a > ( parser : & mut Parser < ' a > ) -> OptionParseResult < ' a , Vec < Spanning < Directive < ' a > > > > {
296
296
if parser. peek ( ) . item != Token :: At {
297
297
Ok ( None )
298
298
}
@@ -306,7 +306,7 @@ fn parse_directives<'a>(parser: &mut Parser<'a>) -> OptionParseResult<'a, Vec<Sp
306
306
}
307
307
}
308
308
309
- fn parse_directive < ' a > ( parser : & mut Parser < ' a > ) -> ParseResult < ' a , Directive > {
309
+ fn parse_directive < ' a > ( parser : & mut Parser < ' a > ) -> ParseResult < ' a , Directive < ' a > > {
310
310
let Spanning { start : start_pos, .. } = try!( parser. expect ( & Token :: At ) ) ;
311
311
let name = try!( parser. expect_name ( ) ) ;
312
312
let arguments = try!( parse_arguments ( parser) ) ;
@@ -315,7 +315,7 @@ fn parse_directive<'a>(parser: &mut Parser<'a>) -> ParseResult<'a, Directive> {
315
315
& start_pos,
316
316
& arguments. as_ref ( ) . map_or ( & name. end , |s| & s. end ) . clone ( ) ,
317
317
Directive {
318
- name : name. map ( |s| s . to_owned ( ) ) ,
318
+ name : name,
319
319
arguments : arguments,
320
320
} ) )
321
321
}
0 commit comments