#line #file-line #reverse #iterator #buffer #reader

rev_lines

Rust Iterator for reading files line by line with a buffer in reverse

5 unstable releases

0.3.0 Jun 22, 2023
0.2.2 May 10, 2023
0.2.1 Apr 27, 2017
0.2.0 Feb 1, 2017
0.1.0 Feb 1, 2017

#494 in Algorithms

Download history 2230/week @ 2023-12-06 1798/week @ 2023-12-13 1049/week @ 2023-12-20 543/week @ 2023-12-27 1879/week @ 2024-01-03 1490/week @ 2024-01-10 2214/week @ 2024-01-17 2008/week @ 2024-01-24 1562/week @ 2024-01-31 1449/week @ 2024-02-07 1656/week @ 2024-02-14 2349/week @ 2024-02-21 2088/week @ 2024-02-28 1028/week @ 2024-03-06 1306/week @ 2024-03-13 1215/week @ 2024-03-20

6,257 downloads per month
Used in 6 crates

MIT license

17KB
264 lines

rev_lines

rev-lines MIT licensed crates.io

This library provides a small Rust Iterator for reading files line by line with a buffer in reverse

Documentation

Documentation is available on Docs.rs.

Example

use std::fs::File;

use rev_lines::RevLines;

let file = File::open("README.md").unwrap();
let rev_lines = RevLines::new(file);

for line in rev_lines {
    println!("{:?}", line);
}

lib.rs:

RevLines

This library provides a small Rust Iterator for reading files or any BufReader line by line with buffering in reverse.

Example

use std::fs::File;

use rev_lines::RevLines;

let file = File::open("README.md").unwrap();
let rev_lines = RevLines::new(file);

for line in rev_lines {
    println!("{:?}", line);
}

If a line with invalid UTF-8 is encountered, the iterator will return None next, and stop iterating.

This method uses logic borrowed from uutils/coreutils tail

Dependencies

~0.4–0.8MB
~19K SLoC