2 个不稳定版本
| 0.3.0 | 2023年3月23日 |
|---|---|
| 0.2.2 | 2022年11月8日 |
| 0.2.1 |
|
| 0.2.0 |
|
| 0.1.0 |
|
#322 在 编码
250,452 每月下载量
在 417 个 crate 中使用 (11 直接)
13KB
201 行
newline-converter
newline-converter 是一个简单的库,用于在字符串之间转换 Windows \r\n 和 Unix \n 风格的换行符。它主要作为 Rust Newline converter CLI 工具的后端。
换行符处理方法的比较
newline-converter (此 crate)
- ✅ 正确处理边缘情况,例如孤立的
\r字符。例如,在调用unix2dos后,\r\n序列不会变成\r\r\nuse newline_converter::unix2dos; assert_eq!( unix2dos("\nfoo\r\nbar\n"), "\r\nfoo\rbar\n" ); - ✅ 当输入数据较小时(少量带行中断的文本字节)性能最快。
- ❌ 当处理大型数据集时(例如 100 段 Lorem Ipsum 文本)性能最慢(或者在
unix2dos的情况下是第二慢)。
string.replace
- ❌ 在
unix2dos中未能正确处理边缘情况。 - ✅ 在大型数据集上表现良好。
regex crate Regex::replace_all
- ❌ 由于缺乏对 look around 的支持,在
unix2dos中未能正确处理边缘情况。 - ✅ 在大型数据集上有最佳性能。
fancy-regex crate Regex::replace_all
- ✅ 正确处理边缘情况。
- ❌ 由于使用了 look around,
unix2dos在所有实现中性能最差,慢了一个数量级。
请查看 benches/bench.rs 以获取比较基准测试。
MSRV
最低支持的 Rust 版本是 1.38.0。
依赖关系
~555KB