#reader #unicode-characters #unicode #char #io-error

char_reader

安全地读取杂乱流为字符或行

2 个版本

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

文本处理 中排名 1707

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

每月下载 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 可以保护您免受内存溢出。

无运行时依赖项