@@ -769,31 +769,6 @@ impl Serialize for SystemTime {
769
769
770
770
////////////////////////////////////////////////////////////////////////////////
771
771
772
- #[ cfg( any( feature = "std" , not( no_core_net) ) ) ]
773
- struct Wrapper < ' a > {
774
- pub buf : & ' a mut [ u8 ] ,
775
- pub offset : usize ,
776
- }
777
-
778
- #[ cfg( any( feature = "std" , not( no_core_net) ) ) ]
779
- impl < ' a > fmt:: Write for Wrapper < ' a > {
780
- fn write_str ( & mut self , s : & str ) -> fmt:: Result {
781
- if self . offset > self . buf . len ( ) {
782
- return Err ( fmt:: Error ) ;
783
- }
784
- let remaining_buf = & mut self . buf [ self . offset ..] ;
785
- let raw_s = s. as_bytes ( ) ;
786
- let write_num = core:: cmp:: min ( raw_s. len ( ) , remaining_buf. len ( ) ) ;
787
- remaining_buf[ ..write_num] . copy_from_slice ( & raw_s[ ..write_num] ) ;
788
- self . offset += raw_s. len ( ) ;
789
- if write_num < raw_s. len ( ) {
790
- Err ( fmt:: Error )
791
- } else {
792
- Ok ( ( ) )
793
- }
794
- }
795
- }
796
-
797
772
/// Serialize a value that implements `Display` as a string, when that string is
798
773
/// statically known to never have more than a constant `MAX_LEN` bytes.
799
774
///
@@ -802,21 +777,9 @@ impl<'a> fmt::Write for Wrapper<'a> {
802
777
macro_rules! serialize_display_bounded_length {
803
778
( $value: expr, $max: expr, $serializer: expr) => { {
804
779
let mut buffer = [ 0u8 ; $max] ;
805
- let written_len = {
806
- let mut w = Wrapper {
807
- buf: & mut buffer,
808
- offset: 0 ,
809
- } ;
810
- write!( & mut w, "{}" , $value) . unwrap( ) ;
811
- w. offset
812
- } ;
813
- let written = & buffer[ ..written_len] ;
814
-
815
- // write! only provides fmt::Formatter to Display implementations, which
816
- // has methods write_str and write_char but no method to write arbitrary
817
- // bytes. Therefore `written` must be valid UTF-8.
818
- let written_str = str :: from_utf8( written) . expect( "must be valid UTF-8" ) ;
819
- $serializer. serialize_str( written_str)
780
+ let mut writer = crate :: format:: Buf :: new( & mut buffer) ;
781
+ write!( & mut writer, "{}" , $value) . unwrap( ) ;
782
+ $serializer. serialize_str( writer. as_str( ) )
820
783
} } ;
821
784
}
822
785
0 commit comments