2 个版本

0.1.1 2021 年 11 月 2 日
0.1.0 2020 年 11 月 4 日

文本处理 中排名 1707

Download history • Rust 包仓库 275/week @ 2024-03-13 • Rust 包仓库 291/week @ 2024-03-20 • Rust 包仓库 261/week @ 2024-03-27 • Rust 包仓库 247/week @ 2024-04-03 • Rust 包仓库 230/week @ 2024-04-10 • Rust 包仓库 219/week @ 2024-04-17 • Rust 包仓库 394/week @ 2024-04-24 • Rust 包仓库 383/week @ 2024-05-01 • Rust 包仓库 235/week @ 2024-05-08 • Rust 包仓库 215/week @ 2024-05-15 • Rust 包仓库 169/week @ 2024-05-22 • Rust 包仓库 322/week @ 2024-05-29 • Rust 包仓库 223/week @ 2024-06-05 • Rust 包仓库 250/week @ 2024-06-12 • Rust 包仓库 194/week @ 2024-06-19 • Rust 包仓库 208/week @ 2024-06-26 • Rust 包仓库

每月下载 911
用于 3 crates

MIT 许可证

15KB
209

MIT Latest Version docs Chat on Miaou

当需要在未经审查的流上实现性能和安全时,BufRead 的 read_line 可能存在问题

如果没有换行符,您可能会永远等待或发生内存不足恐慌。即使有,也可能远远超出所需:您必须保留一切,只为到达下一行的开头。

CharReader 是一个缓冲读取器,用于解决这些问题。

  • 您可以在没有无限流的情况下安全地读取行
  • 如果您只想获取开始部分,则可以读取行而不会存储超过必要的内容
  • 有一个 next_char 函数可以只读取一个字符

当您想读取 UTF8 行但不确定数据是否足够好时,它很合适。

在读取一行时,您传递两个参数

  • 您想要获取的最大字符数(行中剩余部分将被丢弃)
  • 在给出错误之前可以读取的最大字符数(从而保护免受无限流的影响)

所有错误都是 io::Error

  • UTF8 错误的类型为 InvalidData
  • 超出阈值的一行类型为 Other

替代方案: 如果您事先知道需要多少行,并且始终需要完整的行,则标准 take 方法 BufReader 可以保护您免受内存溢出。

无运行时依赖项