2 个版本
0.1.1 | 2023年6月10日 |
---|---|
0.1.0 | 2023年6月10日 |
#2391 在 算法
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::Seek
和 std::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 的代码。