@@ -482,203 +482,6 @@ macro_rules! emit_enquoted_if_mapkey {
482
482
}
483
483
}
484
484
485
- impl < ' a > :: Encoder < EncoderError > for Encoder < ' a > {
486
- fn emit_nil ( & mut self ) -> EncodeResult { try!( write ! ( self . writer, "null" ) ) ; Ok ( ( ) ) }
487
-
488
- fn emit_uint ( & mut self , v : uint ) -> EncodeResult { emit_enquoted_if_mapkey ! ( self , v) }
489
- fn emit_u64 ( & mut self , v : u64 ) -> EncodeResult { emit_enquoted_if_mapkey ! ( self , v) }
490
- fn emit_u32 ( & mut self , v : u32 ) -> EncodeResult { emit_enquoted_if_mapkey ! ( self , v) }
491
- fn emit_u16 ( & mut self , v : u16 ) -> EncodeResult { emit_enquoted_if_mapkey ! ( self , v) }
492
- fn emit_u8 ( & mut self , v : u8 ) -> EncodeResult { emit_enquoted_if_mapkey ! ( self , v) }
493
-
494
- fn emit_int ( & mut self , v : int ) -> EncodeResult { emit_enquoted_if_mapkey ! ( self , v) }
495
- fn emit_i64 ( & mut self , v : i64 ) -> EncodeResult { emit_enquoted_if_mapkey ! ( self , v) }
496
- fn emit_i32 ( & mut self , v : i32 ) -> EncodeResult { emit_enquoted_if_mapkey ! ( self , v) }
497
- fn emit_i16 ( & mut self , v : i16 ) -> EncodeResult { emit_enquoted_if_mapkey ! ( self , v) }
498
- fn emit_i8 ( & mut self , v : i8 ) -> EncodeResult { emit_enquoted_if_mapkey ! ( self , v) }
499
-
500
- fn emit_bool ( & mut self , v : bool ) -> EncodeResult {
501
- if v {
502
- try!( write ! ( self . writer, "true" ) ) ;
503
- } else {
504
- try!( write ! ( self . writer, "false" ) ) ;
505
- }
506
- Ok ( ( ) )
507
- }
508
-
509
- fn emit_f64 ( & mut self , v : f64 ) -> EncodeResult {
510
- emit_enquoted_if_mapkey ! ( self , fmt_number_or_null( v) )
511
- }
512
- fn emit_f32 ( & mut self , v : f32 ) -> EncodeResult {
513
- self . emit_f64 ( v as f64 )
514
- }
515
-
516
- fn emit_char ( & mut self , v : char ) -> EncodeResult {
517
- self . emitting_map_key = EmittingMapKeyState :: EmittedValidMapKey ;
518
- escape_char ( self . writer , v)
519
- }
520
- fn emit_str ( & mut self , v : & str ) -> EncodeResult {
521
- self . emitting_map_key = EmittingMapKeyState :: EmittedValidMapKey ;
522
- escape_str ( self . writer , v)
523
- }
524
-
525
- fn emit_enum < F > ( & mut self , _name : & str , f : F ) -> EncodeResult where
526
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
527
- {
528
- f ( self )
529
- }
530
-
531
- fn emit_enum_variant < F > ( & mut self ,
532
- name : & str ,
533
- _id : uint ,
534
- cnt : uint ,
535
- f : F ) -> EncodeResult where
536
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
537
- {
538
- // enums are encoded as strings or objects
539
- // Bunny => "Bunny"
540
- // Kangaroo(34,"William") => {"variant": "Kangaroo", "fields": [34,"William"]}
541
- if cnt == 0 {
542
- escape_str ( self . writer , name)
543
- } else {
544
- try!( write ! ( self . writer, "{{\" variant\" :" ) ) ;
545
- try!( escape_str ( self . writer , name) ) ;
546
- try!( write ! ( self . writer, ",\" fields\" :[" ) ) ;
547
- try!( f ( self ) ) ;
548
- try!( write ! ( self . writer, "]}}" ) ) ;
549
- Ok ( ( ) )
550
- }
551
- }
552
-
553
- fn emit_enum_variant_arg < F > ( & mut self , idx : uint , f : F ) -> EncodeResult where
554
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
555
- {
556
- if idx != 0 {
557
- try!( write ! ( self . writer, "," ) ) ;
558
- }
559
- f ( self )
560
- }
561
-
562
- fn emit_enum_struct_variant < F > ( & mut self ,
563
- name : & str ,
564
- id : uint ,
565
- cnt : uint ,
566
- f : F ) -> EncodeResult where
567
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
568
- {
569
- self . emit_enum_variant ( name, id, cnt, f)
570
- }
571
-
572
- fn emit_enum_struct_variant_field < F > ( & mut self ,
573
- _: & str ,
574
- idx : uint ,
575
- f : F ) -> EncodeResult where
576
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
577
- {
578
- self . emit_enum_variant_arg ( idx, f)
579
- }
580
-
581
- fn emit_struct < F > ( & mut self , _: & str , _: uint , f : F ) -> EncodeResult where
582
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
583
- {
584
- try!( write ! ( self . writer, "{{" ) ) ;
585
- try!( f ( self ) ) ;
586
- try!( write ! ( self . writer, "}}" ) ) ;
587
- Ok ( ( ) )
588
- }
589
-
590
- fn emit_struct_field < F > ( & mut self , name : & str , idx : uint , f : F ) -> EncodeResult where
591
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
592
- {
593
- if idx != 0 { try!( write ! ( self . writer, "," ) ) ; }
594
- try!( escape_str ( self . writer , name) ) ;
595
- try!( write ! ( self . writer, ":" ) ) ;
596
- f ( self )
597
- }
598
-
599
- fn emit_tuple < F > ( & mut self , len : uint , f : F ) -> EncodeResult where
600
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
601
- {
602
- self . emit_seq ( len, f)
603
- }
604
- fn emit_tuple_arg < F > ( & mut self , idx : uint , f : F ) -> EncodeResult where
605
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
606
- {
607
- self . emit_seq_elt ( idx, f)
608
- }
609
-
610
- fn emit_tuple_struct < F > ( & mut self , _name : & str , len : uint , f : F ) -> EncodeResult where
611
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
612
- {
613
- self . emit_seq ( len, f)
614
- }
615
- fn emit_tuple_struct_arg < F > ( & mut self , idx : uint , f : F ) -> EncodeResult where
616
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
617
- {
618
- self . emit_seq_elt ( idx, f)
619
- }
620
-
621
- fn emit_option < F > ( & mut self , f : F ) -> EncodeResult where
622
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
623
- {
624
- f ( self )
625
- }
626
- fn emit_option_none ( & mut self ) -> EncodeResult { self . emit_nil ( ) }
627
- fn emit_option_some < F > ( & mut self , f : F ) -> EncodeResult where
628
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
629
- {
630
- f ( self )
631
- }
632
-
633
- fn emit_seq < F > ( & mut self , _len : uint , f : F ) -> EncodeResult where
634
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
635
- {
636
- try!( write ! ( self . writer, "[" ) ) ;
637
- try!( f ( self ) ) ;
638
- try!( write ! ( self . writer, "]" ) ) ;
639
- Ok ( ( ) )
640
- }
641
-
642
- fn emit_seq_elt < F > ( & mut self , idx : uint , f : F ) -> EncodeResult where
643
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
644
- {
645
- if idx != 0 {
646
- try!( write ! ( self . writer, "," ) ) ;
647
- }
648
- f ( self )
649
- }
650
-
651
- fn emit_map < F > ( & mut self , _len : uint , f : F ) -> EncodeResult where
652
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
653
- {
654
- try!( write ! ( self . writer, "{{" ) ) ;
655
- try!( f ( self ) ) ;
656
- try!( write ! ( self . writer, "}}" ) ) ;
657
- Ok ( ( ) )
658
- }
659
-
660
- fn emit_map_elt_key < F > ( & mut self , idx : uint , f : F ) -> EncodeResult where
661
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
662
- {
663
- if idx != 0 { try!( write ! ( self . writer, "," ) ) }
664
- self . emitting_map_key = EmittingMapKeyState :: Emitting ;
665
- try!( f ( self ) ) ;
666
- if self . emitting_map_key == EmittingMapKeyState :: EmittedValidMapKey {
667
- self . emitting_map_key = EmittingMapKeyState :: NotEmitting ;
668
- Ok ( ( ) )
669
- } else {
670
- Err ( EncoderError :: BadHashmapKey )
671
- }
672
- }
673
-
674
- fn emit_map_elt_val < F > ( & mut self , _idx : uint , f : F ) -> EncodeResult where
675
- F : FnOnce ( & mut Encoder < ' a > ) -> EncodeResult ,
676
- {
677
- try!( write ! ( self . writer, ":" ) ) ;
678
- f ( self )
679
- }
680
- }
681
-
682
485
/// Another encoder for JSON, but prints out human-readable JSON instead of
683
486
/// compact data
684
487
pub struct PrettyEncoder < ' a > {
0 commit comments