File tree Expand file tree Collapse file tree 5 files changed +698
-83
lines changed Expand file tree Collapse file tree 5 files changed +698
-83
lines changed Original file line number Diff line number Diff line change @@ -273,6 +273,7 @@ pub impl PrettySerializer: serialization::Serializer {
273
273
}
274
274
}
275
275
276
+ #[ cfg( stage0) ]
276
277
pub impl Json : serialization:: Serializable {
277
278
fn serialize < S : serialization:: Serializer > ( & self , s : & S ) {
278
279
match * self {
@@ -296,6 +297,33 @@ pub impl Json: serialization::Serializable {
296
297
}
297
298
}
298
299
300
+ #[ cfg( stage1) ]
301
+ #[ cfg( stage2) ]
302
+ pub impl <
303
+ S : serialization:: Serializer
304
+ > Json : serialization:: Serializable < S > {
305
+ fn serialize ( & self , s : & S ) {
306
+ match * self {
307
+ Number ( v) => v. serialize ( s) ,
308
+ String ( ref v) => v. serialize ( s) ,
309
+ Boolean ( v) => v. serialize ( s) ,
310
+ List ( v) => v. serialize ( s) ,
311
+ Object ( ref v) => {
312
+ do s. emit_rec || {
313
+ let mut idx = 0 ;
314
+ for v. each |key, value| {
315
+ do s. emit_field( * key, idx) {
316
+ value. serialize ( s) ;
317
+ }
318
+ idx += 1 ;
319
+ }
320
+ }
321
+ } ,
322
+ Null => s. emit_nil ( ) ,
323
+ }
324
+ }
325
+ }
326
+
299
327
/// Serializes a json value into a io::writer
300
328
pub fn to_writer ( wr : io:: Writer , json : & Json ) {
301
329
json. serialize ( & Serializer ( wr) )
You can’t perform that action at this time.
0 commit comments