@@ -233,8 +233,7 @@ impl EncodingRef {
233
233
}
234
234
235
235
#[ cfg( feature = "encoding" ) ]
236
-
237
- struct DecodingBufReader < R > {
236
+ pub ( crate ) struct DecodingBufReader { //<R> {
238
237
// // The buffer
239
238
// buffer: String,
240
239
// // How many bytes in the buffer currently hold significant data.
@@ -243,44 +242,45 @@ struct DecodingBufReader<R> {
243
242
// /// Track whether we see errors.
244
243
// encoding: Option<Encoding>,
245
244
246
- inner : R ,
245
+ // inner: R,
247
246
decoded_buffer : Vec < u8 > ,
248
247
current_pos : usize ,
249
248
250
249
decoder : ExtDecoder ,
251
250
encoding : EncodingRef ,
252
251
}
253
252
254
- #[ cfg( feature = "encoding" ) ]
255
- impl < R : BufRead > BufRead for DecodingBufReader < R > {
256
- fn fill_buf ( & mut self ) -> io:: Result < & [ u8 ] > {
257
- self . shuffle ( ) ;
258
- let data = self . inner . fill_buf ( ) ?;
253
+ // #[cfg(feature = "encoding")]
254
+ // impl<R: BufRead> BufRead for DecodingBufReader<R> {
255
+ // fn fill_buf(&mut self) -> io::Result<&[u8]> {
256
+ // self.shuffle();
257
+ // let data = self.inner.fill_buf()?;
259
258
260
- let amount_read_from_inner = self . feed ( data) ?;
261
- self . inner . consume ( amount_read_from_inner) ;
259
+ // let amount_read_from_inner = self.feed(data)?;
260
+ // self.inner.consume(amount_read_from_inner);
262
261
263
- Ok ( data)
264
- }
262
+ // Ok(data)
263
+ // }
265
264
266
- fn consume ( & mut self , amt : usize ) {
267
- self . current_pos = std:: cmp:: min ( self . current_pos + amt, self . decoded_buffer . capacity ( ) ) ;
268
- }
269
- }
265
+ // fn consume(&mut self, amt: usize) {
266
+ // self.current_pos = std::cmp::min(self.current_pos + amt, self.decoded_buffer.capacity());
267
+ // }
268
+ // }
270
269
271
270
272
- #[ cfg( feature = "encoding" ) ]
273
- impl < R : Read > Read for DecodingBufReader < R > {
274
- fn read ( & mut self , buf : & mut [ u8 ] ) -> io:: Result < usize > {
275
- self . inner . read ( buf)
276
- }
277
- }
271
+ // #[cfg(feature = "encoding")]
272
+ // impl<R: Read> Read for DecodingBufReader<R> {
273
+ // fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {
274
+ // self.inner.read(buf)
275
+ // }
276
+ // }
278
277
279
278
#[ cfg( feature = "encoding" ) ]
280
- impl < R : BufRead > DecodingBufReader < R > {
281
- fn new ( inner : R ) -> Self {
279
+ // impl<R: BufRead> DecodingBufReader<R> {
280
+ impl DecodingBufReader {
281
+ fn new ( ) -> Self {
282
282
DecodingBufReader {
283
- inner : inner,
283
+ // inner: inner,
284
284
decoded_buffer : Vec :: new ( ) ,
285
285
current_pos : 0 ,
286
286
@@ -289,8 +289,12 @@ impl<R: BufRead> DecodingBufReader<R> {
289
289
}
290
290
}
291
291
292
- fn get_raw_buffer ( & mut self ) -> io:: Result < & [ u8 ] > {
293
- self . inner . fill_buf ( )
292
+ // fn get_raw_buffer(&mut self) -> io::Result<&[u8]> {
293
+ // self.inner.fill_buf()
294
+ // }
295
+
296
+ fn buffer ( & self ) -> & [ u8 ] {
297
+ & self . decoded_buffer
294
298
}
295
299
296
300
/// Move unconsumed data to the front of the buffer and reset the length
@@ -342,7 +346,15 @@ impl<R: BufRead> DecodingBufReader<R> {
342
346
343
347
#[ cfg( test) ]
344
348
mod tests {
349
+ #[ cfg( feature = "encoding" ) ]
350
+ #[ test]
351
+ fn basic ( ) {
352
+ use super :: DecodingBufReader ;
345
353
354
+ let mut reader = DecodingBufReader :: new ( ) ;
355
+ reader. feed ( b"mary had a little lamb" ) . unwrap ( ) ;
356
+ panic ! ( "{:?}" , reader. decoded_buffer) ;
357
+ }
346
358
}
347
359
348
360
0 commit comments