6 个版本

使用旧的 Rust 2015

0.0.6 2017 年 5 月 24 日
0.0.5 2017 年 5 月 3 日
0.0.4 2016 年 1 月 22 日
0.0.3 2015 年 6 月 13 日
0.0.1 2015 年 4 月 12 日

444内存管理

Download history 31/week @ 2024-03-31 1/week @ 2024-04-07

104 每月下载量

MIT 许可证

13KB
184

lines - 按行流式传输文本

Build Status

lines 是一个小型库,可以有效地按行解析文本文件,同时避免不必要的内存分配。

通常,处理日志文件或其他按行组织的文件格式时,不一定需要为每行处理分配内存。相反,我们可以 ...

  1. ... 分配并维护一个缓冲区 ...
  2. ... 在处理流中定位一行并将其复制到指定的缓冲区 ...
  3. ... 将缓冲区借给客户端代码进行“一些数值计算”,然后 ...
  4. ... 在步骤 2 后重复定位输入中的下一行。

通过重用缓冲区并让客户端决定是否复制读取的行,我们可以在某些情况下获得显著的性能提升。

用法

由于 lines 使用 Cargo,添加以下依赖项部分应该足以开始使用它

[dependencies.lines]
version = "*"

以下程序演示了逐行迭代文件的典型示例

#[macro_use(read_lines)]
extern crate lines;

use lines::linereader::LineReader;
use std::fs::File;
use std::str::from_utf8;

fn main() {
    let f = File::open("main.rs").unwrap();
    read_lines!(line in LineReader::new(f), {
        let line = from_utf8(line.unwrap()).unwrap();
        print!("{}", line);
    });
}

该库可以处理的数据存在某些限制。特别是,换行符被假定为 '\n'。更多信息可以在库的 生成文档 中找到。

依赖项

~620KB