[−][src]Crate rev_buf_reader
This crate provides a buffered reader capable of reading chunks of bytes of a
data stream in reverse order. Its implementation is an adapted copy of
BufReader from the
nightly std::io
.
Usage
Reading chunks of bytes in reverse order:
extern crate rev_buf_reader; use rev_buf_reader::RevBufReader; use std::io::{self, Read}; let data = [0, 1, 2, 3, 4, 5, 6, 7]; let inner = io::Cursor::new(&data); let mut reader = RevBufReader::new(inner); let mut buffer = [0, 0, 0]; assert_eq!(reader.read(&mut buffer).ok(), Some(3)); assert_eq!(buffer, [5, 6, 7]); let mut buffer = [0, 0, 0, 0, 0]; assert_eq!(reader.read(&mut buffer).ok(), Some(5)); assert_eq!(buffer, [0, 1, 2, 3, 4]);
Reading text lines in reverse order:
extern crate rev_buf_reader; use rev_buf_reader::RevBufReader; use std::io::{self, BufRead}; let data = "a\nb\nc"; let inner = io::Cursor::new(&data); let reader = RevBufReader::new(inner); let mut lines = reader.lines(); assert_eq!(lines.next().unwrap().unwrap(), "c".to_string()); assert_eq!(lines.next().unwrap().unwrap(), "b".to_string()); assert_eq!(lines.next().unwrap().unwrap(), "a".to_string()); assert!(lines.next().is_none());
Structs
RevBufReader |
|