@@ -297,39 +297,41 @@ pub fn file_reader(path: &Path) -> Result<Reader, ~str> {
297
297
}
298
298
299
299
300
- // Byte buffer readers
301
-
302
- pub type ByteBuf = {buf: &[const u8], mut pos: uint};
300
+ // Byte readers
301
+ pub struct BytesReader {
302
+ bytes: &[u8],
303
+ mut pos: uint
304
+ }
303
305
304
- impl ByteBuf : Reader {
305
- fn read(buf : &[mut u8], len: uint) -> uint {
306
- let count = uint::min(len, self.buf .len() - self.pos);
306
+ impl BytesReader : Reader {
307
+ fn read(bytes : &[mut u8], len: uint) -> uint {
308
+ let count = uint::min(len, self.bytes .len() - self.pos);
307
309
308
- let view = vec::const_view (self.buf , self.pos, self.buf .len());
309
- vec::bytes::memcpy(buf , view, count);
310
+ let view = vec::view (self.bytes , self.pos, self.bytes .len());
311
+ vec::bytes::memcpy(bytes , view, count);
310
312
311
313
self.pos += count;
312
314
313
315
count
314
316
}
315
317
fn read_byte() -> int {
316
- if self.pos == self.buf .len() { return -1; }
317
- let b = self.buf [self.pos];
318
+ if self.pos == self.bytes .len() { return -1; }
319
+ let b = self.bytes [self.pos];
318
320
self.pos += 1u;
319
321
return b as int;
320
322
}
321
323
// FIXME (#2738): implement this
322
324
fn unread_byte(_byte: int) { error!(" Unimplemented : unread_byte") ; fail; }
323
- fn eof ( ) -> bool { self . pos == self . buf . len ( ) }
325
+ fn eof ( ) -> bool { self . pos == self . bytes . len ( ) }
324
326
fn seek ( offset : int , whence : SeekStyle ) {
325
327
let pos = self . pos ;
326
- self . pos = seek_in_buf ( offset, pos, self . buf . len ( ) , whence) ;
328
+ self . pos = seek_in_buf ( offset, pos, self . bytes . len ( ) , whence) ;
327
329
}
328
330
fn tell ( ) -> uint { self . pos }
329
331
}
330
332
331
333
pub pure fn with_bytes_reader < t > ( bytes : & [ u8 ] , f : fn ( Reader ) -> t ) -> t {
332
- f ( { buf : bytes, mut pos: 0 u} as Reader )
334
+ f ( BytesReader { bytes : bytes, pos : 0 u } as Reader )
333
335
}
334
336
335
337
pub fn with_str_reader < T > ( s : & str , f : fn ( Reader ) -> T ) -> T {
0 commit comments