11use std:: ptr;
22use std:: io:: Write ;
3- use JsonValue ;
4- use number:: Number ;
5- use object:: Object ;
63use std:: io;
74
8- use util:: print_dec;
5+ use crate :: JsonValue ;
6+ use crate :: number:: Number ;
7+ use crate :: object:: Object ;
8+ use crate :: util:: print_dec;
99
1010const QU : u8 = b'"' ;
1111const BS : u8 = b'\\' ;
@@ -66,35 +66,35 @@ pub trait Generator {
6666
6767 #[ inline( never) ]
6868 fn write_string_complex ( & mut self , string : & str , mut start : usize ) -> io:: Result < ( ) > {
69- try! ( self . write ( string[ .. start] . as_bytes ( ) ) ) ;
69+ self . write ( string[ .. start] . as_bytes ( ) ) ? ;
7070
7171 for ( index, ch) in string. bytes ( ) . enumerate ( ) . skip ( start) {
7272 let escape = ESCAPED [ ch as usize ] ;
7373 if escape > 0 {
74- try! ( self . write ( string[ start .. index] . as_bytes ( ) ) ) ;
75- try! ( self . write ( & [ b'\\' , escape] ) ) ;
74+ self . write ( string[ start .. index] . as_bytes ( ) ) ? ;
75+ self . write ( & [ b'\\' , escape] ) ? ;
7676 start = index + 1 ;
7777 }
7878 if escape == b'u' {
79- try! ( write ! ( self . get_writer( ) , "{:04x}" , ch) ) ;
79+ write ! ( self . get_writer( ) , "{:04x}" , ch) ? ;
8080 }
8181 }
82- try! ( self . write ( string[ start ..] . as_bytes ( ) ) ) ;
82+ self . write ( string[ start ..] . as_bytes ( ) ) ? ;
8383
8484 self . write_char ( b'"' )
8585 }
8686
8787 #[ inline( always) ]
8888 fn write_string ( & mut self , string : & str ) -> io:: Result < ( ) > {
89- try! ( self . write_char ( b'"' ) ) ;
89+ self . write_char ( b'"' ) ? ;
9090
9191 for ( index, ch) in string. bytes ( ) . enumerate ( ) {
9292 if ESCAPED [ ch as usize ] > 0 {
9393 return self . write_string_complex ( string, index)
9494 }
9595 }
9696
97- try! ( self . write ( string. as_bytes ( ) ) ) ;
97+ self . write ( string. as_bytes ( ) ) ? ;
9898 self . write_char ( b'"' )
9999 }
100100
@@ -116,30 +116,30 @@ pub trait Generator {
116116
117117 #[ inline( always) ]
118118 fn write_object ( & mut self , object : & Object ) -> io:: Result < ( ) > {
119- try! ( self . write_char ( b'{' ) ) ;
119+ self . write_char ( b'{' ) ? ;
120120 let mut iter = object. iter ( ) ;
121121
122122 if let Some ( ( key, value) ) = iter. next ( ) {
123123 self . indent ( ) ;
124- try! ( self . new_line ( ) ) ;
125- try! ( self . write_string ( key) ) ;
126- try! ( self . write_min ( b": " , b':' ) ) ;
127- try! ( self . write_json ( value) ) ;
124+ self . new_line ( ) ? ;
125+ self . write_string ( key) ? ;
126+ self . write_min ( b": " , b':' ) ? ;
127+ self . write_json ( value) ? ;
128128 } else {
129- try! ( self . write_char ( b'}' ) ) ;
129+ self . write_char ( b'}' ) ? ;
130130 return Ok ( ( ) ) ;
131131 }
132132
133133 for ( key, value) in iter {
134- try! ( self . write_char ( b',' ) ) ;
135- try! ( self . new_line ( ) ) ;
136- try! ( self . write_string ( key) ) ;
137- try! ( self . write_min ( b": " , b':' ) ) ;
138- try! ( self . write_json ( value) ) ;
134+ self . write_char ( b',' ) ? ;
135+ self . new_line ( ) ? ;
136+ self . write_string ( key) ? ;
137+ self . write_min ( b": " , b':' ) ? ;
138+ self . write_json ( value) ? ;
139139 }
140140
141141 self . dedent ( ) ;
142- try! ( self . new_line ( ) ) ;
142+ self . new_line ( ) ? ;
143143 self . write_char ( b'}' )
144144 }
145145
@@ -152,26 +152,26 @@ pub trait Generator {
152152 JsonValue :: Boolean ( true ) => self . write ( b"true" ) ,
153153 JsonValue :: Boolean ( false ) => self . write ( b"false" ) ,
154154 JsonValue :: Array ( ref array) => {
155- try! ( self . write_char ( b'[' ) ) ;
155+ self . write_char ( b'[' ) ? ;
156156 let mut iter = array. iter ( ) ;
157157
158158 if let Some ( item) = iter. next ( ) {
159159 self . indent ( ) ;
160- try! ( self . new_line ( ) ) ;
161- try! ( self . write_json ( item) ) ;
160+ self . new_line ( ) ? ;
161+ self . write_json ( item) ? ;
162162 } else {
163- try! ( self . write_char ( b']' ) ) ;
163+ self . write_char ( b']' ) ? ;
164164 return Ok ( ( ) ) ;
165165 }
166166
167167 for item in iter {
168- try! ( self . write_char ( b',' ) ) ;
169- try! ( self . new_line ( ) ) ;
170- try! ( self . write_json ( item) ) ;
168+ self . write_char ( b',' ) ? ;
169+ self . new_line ( ) ? ;
170+ self . write_json ( item) ? ;
171171 }
172172
173173 self . dedent ( ) ;
174- try! ( self . new_line ( ) ) ;
174+ self . new_line ( ) ? ;
175175 self . write_char ( b']' )
176176 } ,
177177 JsonValue :: Object ( ref object) => {
@@ -345,9 +345,9 @@ impl<'a, W> Generator for PrettyWriterGenerator<'a, W> where W: Write {
345345 }
346346
347347 fn new_line ( & mut self ) -> io:: Result < ( ) > {
348- try! ( self . write_char ( b'\n' ) ) ;
348+ self . write_char ( b'\n' ) ? ;
349349 for _ in 0 ..( self . dent * self . spaces_per_indent ) {
350- try! ( self . write_char ( b' ' ) ) ;
350+ self . write_char ( b' ' ) ? ;
351351 }
352352 Ok ( ( ) )
353353 }
0 commit comments