#line #reverse #iterator #buffer #reader

reverse-lines

Rust 迭代器,用于通过缓冲区反向逐行读取文件

2 个版本

0.1.1 2023年6月10日
0.1.0 2023年6月10日

#2391算法

MIT 许可证

11KB
164

reverse_lines

此库提供了一个小的 Rust Iterator,用于通过缓冲区反向逐行读取文件。

这是对 rev_lines 的重构。

文档

文档可在 Docs.rs 上找到。

示例

extern crate reverse_lines;

use reverse_lines::ReverseLines;

let file = File::open("/path/to/file").unwrap();
let mut reverse_lines = ReverseLines::new(file).unwrap();

for line in reverse_lines {
    println!("{}", line.unwrap());
}

lib.rs:

ReverseLines

此库提供了一个小的 Rust Iterator,用于反向读取实现 std::io::Seekstd::io::Read 的文件或任何东西。

这是对 rev_lines 的重构,改进了错误处理并允许更多类型。

示例

 extern crate reverse_lines;

 use reverse_lines::ReverseLines;
 use std::io::BufReader;
 use std::fs::File;

 fn main() {
     let file = File::open("tests/multi_line_file").unwrap();
     let reverse_lines = ReverseLines::new(BufReader::new(file)).unwrap();

     for line in reverse_lines {
         println!("{}", line.unwrap());
     }
 }

如果遇到无效的 UTF-8 行或 I/O 错误,迭代器将产生一个 std::io::Error

此方法使用了来自 uutils/coreutils tail 的逻辑和来自 rev_lines 的代码。

无运行时依赖